[Excel][VBA]個人的 逆引き関数リファレンス






トップページへ

※数は少ないです

※逆引き、つまり「したいこと」から関数を探す一覧でリンク先はなるべく公式ですが、見つからない場合は諸先輩方のサイトです

 

セルの指定→CellsRange

セルのオフセット移動→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桁ごとの区切り(千円区切り))

A. FormatCurrency

 

 

ループ処理の一例

For Next

Do Until Loop

*Do は間違えると永久ループになる危険性あり

For Each Next

 

 

文字列の変換(全角を半角に、半角を全角に、大文字を小文字に、小文字を大文字に、ひらがなをカタカナに、カタカナをひらがなに)→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

改行→vbCrLf、Chr(13) + Chr(10)

オブジェクト参照の割り当て→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メニューへ戻る

 






関連記事
[Excel][VBA]大量データの処理にかかる時間の測定事例

[Excel][VBA] バッチ処理風

[Excel][VBA] クリップボードからテキストを取得

ExcelのVBAでエラーになった事例集

Excel 非表示モジュール内でコンパイル エラーが発生しました