[Excel][VBA]個人的 逆引き関数リファレンス
トップページへ
※数は少ないです
※逆引き、つまり「したいこと」から関数を探す一覧でリンク先はなるべく公式ですが、見つからない場合は諸先輩方のサイトです
セルのオフセット移動→Offset
セルの数式と値のクリア(初期化)→ClearContents
セルの数式を含め全てクリア(全初期化)→Clear
メッセージボックス(ダイアログボックス)→MsgBox
ふりがなを取得→Application.GetPhonetic メソッド
文字列内を検索→InStr
文字列の必要な部分だけを返す→Mid
文字列の右端から必要な部分だけを返す→Right
文字列の左端から必要な部分だけを返す→Left
文字列内の文字の置換→Replace
文字長→Len
文字列の書式指示(日付、時刻など)→Format
Q.小数に値がない場合でもゼロを表示したい。例 35→35.0
A.例 Format(Sheet1.Range(“A1”).Value, “#.0”)
日付の足し算、引き算→DateAdd
Q. 通貨を表示したい(\マーク付き、3桁ごとの区切り(千円区切り))
ループ処理の一例
*Do は間違えると永久ループになる危険性あり
文字列の変換(全角を半角に、半角を全角に、大文字を小文字に、小文字を大文字に、ひらがなをカタカナに、カタカナをひらがなに)→StrConv
マクロの速度向上(高速化、描画停止)→Application.ScreenUpdating
分岐→Select Case
割り算の整数部分を返す→ \演算子
*日本語では「円マーク」で表記される
数値の整数部分を返す→IntやFix関数
データ型変換関数→一例 小数ありの数値に変換 CDbl
Q.小数部分を抜き取りたい
A.サンプル
12.3456789 の整数部分を抜き取り、元の値から引き算をします。
Dim w_int As Integer
Dim w_syousuu As Double
w_int = Int(12.3456789)
w_syousuu = CDbl(12.3456789) – w_int
結果
w_int→12
w_syousuu→0.345678899999999
誤差が生じていますが、小数部分の抜き取りは可能です
Q.処理を停止する待ち時間(実行遅延)を作りたい
A.Application.Wait メソッドのサンプルそのままです
5秒間の待ち時間を作る場合
Dim newHour, newMinute, newSecond As Integer
Dim waitTime As Date
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 5
waitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait waitTime
配列
配列の範囲指定や二次元配列(下限指定)
配列の初期化→Erase
Variant型の配列関数→array
配列の始まり指定→Option Base
配列の最大値→UBound
配列の再割り当てや、配列の維持→ReDim Preserve
●管理人の配列の事例
個々に値をセットするか、一度に値をセットするかの違いだけで、2パターンとも配列に値をセットしているだけです。ただし一度に値をセットする方法では Variant型が必須です
Dim i As Integer Dim j_ar(7) As Integer Dim jichi_ar As Variant 'Variantが必須 '個々に値をセット j_ar(0) = 14 j_ar(1) = 24 j_ar(2) = 26 j_ar(3) = 13 j_ar(4) = 12 j_ar(5) = 22 j_ar(6) = 25 Sheet1.Cells(i, j_ar(i)).Value '一度に値をセット jichi_ar = Array(15, 16) Sheet1.Cells(i, jichi_ar(i)).Value 'ループなどでは配列の個数に注意
モジュール内で変数の明示的な宣言つまり、変数を一意にする→Option Explicit
オブジェクト参照の割り当て→Set
オブジェクト参照の解除→Nothing
数字かどうか→IsNumeric
ActiveXオブジェクトの参照を作成→CreateObject
ActiveXオブジェクトの参照を閉じる→Close
ActiveXDataObjects→ADOのプロパティ、メソッドなど
ADOの一例→Streamオブジェクト
テキストファイルを一行ごとに読み込む→Line Input
サンプル
Private Sub CommandButton1_Click() Dim TextLine As String Dim i As Integer Sheet9.Cells(2, 8).Activate Open "sample.txt" For Input As #1 ' Open file. i = 0 Do While Not EOF(1) ' Loop until end of file. Line Input #1, TextLine ' Read line into variable. Sheet9.Cells(5 + i, 10).Value = TextLine i = i + 1 Loop Close #1 ' Close file. End Sub
→Excelメニューへ戻る