カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

Dictionaryクラス VBA

Dictionaryクラスはハッシュテーブルのように使えるクラスです。
Collectionクラスも同じように使えるのですが、Dictionaryクラスはキーが存在するかどうかをチェックするメソッドがあることがポイントです。

Dim dict As Object

Set dict = CreateObject("Scripting.Dictionary")

キーが存在しないことを確かめてからデータを追加します。

If dict.Exists("いちご") <> True Then
    dict.Add "いちご", "いちご"
End If

ループして全ての値を取り出します。

For Each vntItem In dict.Items
    MsgBox vntItem
Next vntItem

続きを読む…»

3,427 views

複数の条件分岐 Select Case

複数の条件で処理を分岐させたい場合、Select Caseステートメントを使用します。
他の言語でのswitch文と似ていますので、そちらをご存じの方には親しみやすいと思います。

文法

Select Case 変数
    Case 値1
        変数が値1だった場合の処理
    Case 値2
        変数が値2だった場合の処理
    Case Else
        それ以外の場合の処理
End Select

「Case Else」がswitch文での「default」に当たります。
VisualBasicではbreakは不要です。

値の判定には数値はもちろん、文字列も使用可能です。
また比較条件を指定することもできます。

Select Case 変数
    Case Is 比較条件1
        変数が比較条件1を満たした場合の処理
    Case Is 比較条件2
        変数が比較条件2を満たした場合の処理
    Case Else
        変数がどの条件も満たさなかった場合の処理
End Select

続きを読む…»

3,619 views

ACCESS Excelファイルに画像を挿入

まずは変数を宣言します。

Dim xlApp   As Object
Dim xlBook  As Object
Dim xlSheet As Object

各オブジェクトを作成します。

Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open([Excelファイルのフルパス])
Set xlSheet = xlBook.WorkSheets(1)

ワークシートオブジェクトをwithブロックで使用します。

With xlSheet

画像を貼り付けしたい起点(左上)のセルを選択します。

.Range("A1").Select

withブロックが入れ子になりますが、画像オブジェクトとしてアクセスできるようにします。 続きを読む…»

9,207 views

VBEでマウスホイールを有効にする

Office2000を使用している場合、Visual Basic Editor(VBE)では
マウスホイールが使用できません。
開発する上で、非常に効率が悪いので私はアドインを使ってホイールを有効化しています。

まず、以下のURLから「VB6MouseWheel.exe」パッケージをダウンロードします。
http://support.microsoft.com/kb/837910/ja

1.「VB6MouseWheel.exe」をダブルクリックし、任意の場所にファイルを解凍します。

2.[スタート]から[ファイル名を指定して実行]で以下を入力します。

regsvr32 <path>\VB6IDEMouseWheelAddin.dll

3.解凍したファイルの中の「VBA Mouse Wheel Fix.reg」を
  ダブルクリックしてレジストリに登録します。

4.Visual Basic Editor(VBE)を起動し、メニューの[アドイン]-[アドインマネージャ]を選択し起動。

5.利用可能なアドインのリストに「MouseWheelFix」があるので、選択し
  ロード方法の「ロード/アンロード」「起動時にロード」両方にチェックを入れ、OKをクリックしてください。

6,013 views

Excelオブジェクトを使用してフリガナ入力

ACCESSからVBAでフリガナを自動入力します。

Dim xlObj As Object

Set xlObj = CreateObject("Excel.Application")

Hurigana = xlObj.GetPhonetic("文字列")

Set xlObj = Nothing

ちなみにExcelだと、

Phonetic("文字列")

だけでできるようです。

2,681 views