- ユーザーフォームからの入力
- クラスモジュール内で配列を使う
- インスタンスが2次元の場合の呼び出し
- Select Case 文
- 数値を文字列に変換する
- 文字列を置換(削除)する
- 変換の型を調べる
- 文字列変数に文字を追加する
- inStr関数を使って、複数の文字列を探索する
- Replace関数を使って特定の文字を削除(置換)する
- 文字列変数から重複した文字を削除する
- 1~9までで欠落している数字を特定する
- セルのエラーを無視する
- With~End With
- ファイルを閉じる際に停止させたくない場合
- プロシージャの参照呼び出し
- セルに書き込んだ文字列に色を付ける
- クラスモジュールの引数なしのMethodを呼び出す
- 文字列変数の左右から、文字を取り出す
ユーザーフォームからの入力
・ユーザーフォーム
Private Sub CommonButton1_Click()
UserForm1.Hide
End Sub
・標準モジュール
UserForm1.Show
Dim result As String
result = UserForm1.ComboBox1.Text
Unload UserForm1
MsgBox result
クラスモジュール内で配列を使う
クラス内で配列を使用する場合には、配列の宣言はPrivateで行う。
例:Private BoxNumberInSection(3,3) as Integer
Privateなので、配列の操作、参照は別のモジュールからはできない。
クラス内でPublicなメソッドを作り、そのメソッドを介して参照する形にするのがいい。
インスタンスが2次元の場合の呼び出し
呼び出し側:
Call Methd(Class) ※()なし
呼び出される側:
Method(Class) ※()なし
Select Case 文
Select Case Number
Case 1
Case 2
End Select
Select Case Number
Case 1,2,3
Case 4,5,6
End Select
数値を文字列に変換する
Str(intCost)
MsgBox “商品の購入価格は”& intCost & “円です。”
文字列を置換(削除)する
例: 文字列から空白文字を削除する
MyStr = Replace (MyStr , ” ” , “”)
変換の型を調べる
Msgbox Vartype(変数)
文字列変数に文字を追加する
a = “A”
b = “B”
c = a & b
inStr関数を使って、複数の文字列を探索する
Sub macro1()
Dim String1 As String, String2 As String
String1 = “侍エンジニア塾侍エンジニア塾侍エンジニア塾”
String2 = “塾”
Dim i As Integer, msg As String
i = InStr(i + 1, String1, String2)
Do While i > 0
msg = msg & i & ","
i = InStr(i + 1, String1, String2)
Loop
MsgBox “「” & String2 & “」の位置は” & msg & “番目です。”
End Sub
Replace関数を使って特定の文字を削除(置換)する
m = Replace(String, “A”,””)
文字列変数から重複した文字を削除する
Sub DoubleDelete()
Dim String1 As String
Dim JustCounter As Integer
Dim NumberOfString As Integer
String1 = 457668
For JustCounter = 1 To 9
NumberOfString = Len(String1)
String1 = Replace(String1, JustCounter, "")
If Len(String1) = NumberOfString Then
Else
String1 = String1 & JustCounter
End If
Next JustCounter
MsgBox String1
End Sub
1~9までで欠落している数字を特定する
Function FindLastOneNumber(IntegratedMatrix() As String, JustCounterRow As Integer, JustCounterColumn)
Dim JustCounter As Integer
Dim Dummy As Integer
FindLastOneNumber = Replace(IntegratedMatrix(JustCounterRow, JustCounterColumn), “-“, “”)
For JustCounter = 1 To 9
Dummy = Len(FindLastOneNumber)
If Len(Replace(FindLastOneNumber, JustCounter, "")) = Dummy Then
FindLastOneNumber = JustCounter
Exit For
End If
Next JustCounter
End Function
セルのエラーを無視する
Cells(Row , Column ).Errors.Item(xlNumberAsText).Ignore = True
With~End With
「With ~ End With」を使うことで、キーワードを記述する手間を省略することができます。
With ~ End With文の構文
With オブジェクトを取得するプロパティやメソッド
.プロパティ = 設定する値
.メソッド
End With
With ~ End With文の例文
With Range(“A1”).Font
.Name = “游ゴシック”
.Size = 14
.Strikethrough = False
End With
With ~ End Withを使わずに書いた状態
Range(“A1”).Font.Name = “游ゴシック”
Range(“A1”).Font.Size = 14
Range(“A1”).Font.Strikethough = False
ファイルを閉じる際に停止させたくない場合
Application.DisplayAlerts = Fales
Workbooks(“Book1.xlsx”).Close
Application.DisplayAlerts = Ture
プロシージャの参照呼び出し
・クラスモジュール配列の参照呼出し
呼び出し側:
Call Method(Class())
呼び出される側:
Private Sub Method(ByRef Class() As ClassModule)
セルに書き込んだ文字列に色を付ける
Cells(##,##).Font.Color = RGB(Red,Green,Blue)
クラスモジュールの引数なしのMethodを呼び出す
呼び出し側:
Class.Method :かっこなし
呼び出される側:
Method()
文字列変数の左右から、文字を取り出す
例:
Dim str as String
str = “Hello VBA”
Msgbox Left(str,5)
この例では、Left関数を使って文字列の先頭から指定した5文字を抜き出しています。
コメント