Public Const f As Long = 100 '全てのモジュール(プロジェクト)内Private Const g As Long = 100 'モジュール内Dim c As Long 'モジュール内Private d As Long 'モジュール内Public e As Long '全てのモジュール(プロジェクト)内Private Sub test() 'モジュール内
更新情報
Excel-VBA 入れ子(ネスト)のFor...Nextステートメント Nextの共通
見づらいので使ったことはないが、こんなネストが出来てしまうらしい・・・Sub test() Dim i As Long, j As Long For i = 1 To 10 For j = 1 To 5 MsgBox i & Space(10) & j Next j, iEnd SubSub tes
Excel-VBA 全てのシートで共通したイベントWorkSheetのChangeとSelectionChangeでの処理
方法1 こっちの方が簡単Excel Objects の ThisWorkbook のオブジェクトボックスで、Workbook を選択。プロシージャボックから、SheetChange など、イベントを選択して処理を作成。VBAProject --> Microsoft Excel Objects --> ThisWorkbookPrivate Sub Workbook_SheetChange
Excel-VBA Round関数 小数の丸め処理(四捨五入と違う) WorksheetFunction.Round
Round 関数は、指定された小数点位置で丸めた数値を返す。VBA の Round 関数は、ワークシート関数 Round と異なるワークシート関数 Round は、".5" は常に切り上げられますが、VBA の Round 関数は ".5" は、結果が偶数になるように、切り上げられることも、切り捨てられるこ
Excel-VBA ふりがなを平仮名で15文字分だけ表示する Phonetic.Text (StrConv, Left)
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Select Case Target.Column Case 7, 11 If Not (ActiveCell.Row > 6) Then Exit Sub Call ふりがな設定 End Selec
Excel-VBA コレクション Add Remove Item Count
Dim Coll As New Collectionコレクションに追加 異なるデータ型もOKSub CollAdd() Coll.Add "テスト1" Coll.Add 456 Coll.Add 789 Coll.Add 123, after:=1End Subコレクションの数だけ表示 インデックスは1から Sub CollPring() Dim i
Excel-VBA Format関数 日付・時刻・数値・金額
日付Sub Formatテスト() Dim myDate As Date myDate = Now Debug.Print Format(myDate, "yyyy年mm月dd日(aaaa)") Debug.Print Format(myDate, "'yy m.d (aaa)") Debug.Print Format(myDate, "mmmm d (dddd)") Debug.Print Format(myDat
Excel-VBA エラー番号とエラー情報 Err.Number Err.Description
Sub Errorテスト() Dim byteNo As Byte On Error GoTo ErrorCheck byteNo = 1000 Sheets(5).Select byteNo = 100 / 0 byteNo = "これはテストです" Error.Number MsgBox "Err.Number: " & Err.Number & vbNewLine &
Excel-VBA ユーザー定義型の引数を参照渡しと値渡し
Type 科目情報 Code As String Name As StringEnd TypeSub Test() Dim 科目 As 科目情報 科目.Code = "1112" 科目.Name = "当座預金" Call TestA(科目) Call TestB(科目.Code, 科目.Name)End Sub'ユーザー定義型変数の引数
Excel-VBA 引数が配列の場合の、参照渡しと値渡し
引数が配列の場合の、「参照渡し」と「値渡し」下のプロシージャ、Test を動かしてみてください。TestA, TestB は、Testの中で呼び出します。まず、配列 MyArray に 1 と 2 をセットしています。TestA は、配列を参照渡しで受け取り、配列の中身を 3 と 4 に入れ替えていま
Excel-VBA 引数に規定値を設定 Optional IsMissing
Sub sample1() Call sampleA(20) Call sampleA Call sampleB("引数あり") Call sampleBEnd SubSub sampleA(Optional ByVal lngM As Long = 10) '引数が省略されると初期値10が使われる lngM = lngM * 100 MsgBox lngMEnd SubSub
Excel-VBA Functionプロシージャの呼び出し 引数がない場合、ある場合
Sub FuncTest() Dim MyStr As String '引数が無いので()を省略 MyStr = FuncSamp1 MsgBox MyStr '引数が無いので中身のない()とした MyStr = FuncSamp1() MsgBox MyStr MsgBox FuncSamp2(30)End SubFunction FuncSamp1() As
Excel-VBA コレクション Add Remove Count
コレクションのインデックス番号は、1から。配列と違い 0 からではないので注意!Option ExplicitDim MyColection As New CollectionSub TestColAdd()'1~3まで順番に追加 1,2,3 Dim i As Long MyColection.Add 1 MyColection.Add 2 MyColection.Add 3E
Excel-VBA 配列のインデックス番号(要素番号)の最小値、最大値 LBound(myArray) UBound(myArray)
Sub LUBound() Dim myArray() As Long ReDim myArray(3 To 7) MsgBox "LBound: " & LBound(myArray) & vbNewLine & "UBound: " & UBound(myArray) ReDim myArray(1 To 5) MsgBox "LBound: " & LBound(myArray) & vbNewLine & "UBound: " & U
Excel-VBA 動的配列 配列の値を消さないように配列要素を増やす Preserve
Sub TestRreserve() Dim myArray() As Long ReDim myArray(1) myArray(0) = 1 myArray(1) = 2 ReDim Preserve myArray(2) myArray(2) = 3 Debug.Print myArray(0) Debug.Print myArray(1) Debug.Print myArray(2