VBA

VBA

VBAで#N/Aかどうか判断する方法

VBAで#N/Aかどうか判断する方法
VBA

VBAでfor文やマイナスするfor文の書き方

VBAでfor文やマイナスするfor文の書き方VBAでfor文やマイナスするfor文の書き方についてです。基本的には以下のように記述します。For i = 1 To 10 ' 処理Next逆にカウンタ変数を減らしたい場合はStepを使用しま...
VBA

VBAでピボットを折りたたみしたり展開したりする方法

VBAでピボットを折りたたみしたり展開したりする方法です。以下は指定したフィールド名を全て折りたたむ例です。ActiveSheet.PivotTables("ピボットテーブル名").PivotFields("フィールド名").ShowDet...
VBA

VBAで書式設定する方法や表示した値を取得する方法

VBAで書式設定する方法や表示した値を取得する方法です。書式設定はNumberFormatとNumberFormatLocalの2種類で設定できます。例えば日付形式を設定したい例です。Sheets("シート名").Range("A1:A10...
VBA

VBAでシートから別シートにコピーする方法

VBAでシートから別シートにコピーする方法です。A1セルからE10セルを別シートにコピーする例です。Sheets("シート名").Range("A1:E10").CurrentRegion.Copy Sheets("別シート名").Rang...
VBA

VBAでワークシートの最終行を取得する

VBAでワークシートの最終行を取得する方法です。Dim maxRow As LongmaxRow = Sheets("シート名").Range("A1").End(xlDown).Rowこれでシート名のA1セルの一番下までの行数を取得するこ...
VBA

VBAで行列を非表示にする

VBAで行を非表示にするにはHiddenプロパティを使用します。Sub macro()Rows("2:5").Hidden = TrueEnd SubRowsで行範囲を指定します。上記では2行目から5行目を指定し、Trueにすることで非表示...
VBA

VBAで配列をループする

VBAで配列をループするVBAで配列をループします。Sub macro() Dim arr() As String arr = Split("aa;bb;cc",";") For Each i In arr MsgBox i Next iE...
VBA

VBAでサブフォルダを操作する

VBAでサブフォルダを操作するVBAで指定したフォルダのオブジェクトはGetFolderメソッドで操作します。Sub macro() Dim fso As Object Set fso = CreateObject("Scripting.F...
VBA

VBAでブックを開く

VBAでブックを開くVBAでエクセルブックを開くには、Openメソッドを使用します。指定したファイルが存在しない場合はエラーとなります。以下では読み取り専用にはしていません。Sub macro() Dim wk As WorkBook Se...
VBA

VBAで表示倍率を100%にする

VBAで表示倍率を100%にする
VBA

VBAで改ページプレビューと標準にする

VBAで改ページプレビューと標準にするVBAで改ページプレビューと標準にするにはActiveWindow.Viewを変更します。xlPageBreakPreviewでプレビューモードにします。Sub macro() ActiveWindow...
VBA

VBAでセル位置をA1にする

VBAでセル位置をA1にするVBAでセル位置をA1にするにはSelectメソッドでセル位置を指定します。Sub macro() ActiveSheet.Range("A1").SelectEnd Sub
VBA

VBAでフォルダ名を変更する

VBAでフォルダ名を変更する
VBA

VBAでファイルを移動する

VBAでファイルを移動する
VBA

VBAでフォルダをコピーする

VBAでフォルダをコピーするVBAでフォルダをコピーするには、copyFolderを使います。第一引数がコピー元フォルダ、第二引数がコピー先フォルダになります。Sub macro() Dim fso As Object Set fso = ...
VBA

VBAでファイルの存在を調べる

VBAでファイルの存在を調べるVBAでファイルの存在を調べるには、fileExistsを使います。存在する場合はtrue,存在しない場合はfalseを返します。Sub macro() Dim fso As Object Set fso = ...
VBA

VBAでフォルダの存在を調べる

VBAでフォルダの存在を調べるVBAでフォルダの存在を調べるには、FolderExistsを使います。存在する場合はtrue,存在しない場合はfalseを返します。Sub macro() Dim fso As Object Set fso ...
VBA

VBAのString型の文字列長を*で指定する

VBAのString型の文字列長を*で指定することができます。通常は以下のように指定します。Dim str As Stringこれに、「* 文字列長」を追記すれば文字列長を指定することが可能です。Dim str As String * 2以...
VBA

VBAのTypeName関数で型を調べる

VBAのTypeName関数で型を調べる事ができます。以下のように記述します。Sub macro()Dim a As LongDim b As StringDim c As DoubleDebug.Print TypeName(a)Debu...
VBA

VBAでHiddenプロパティを使用して行の表示非表示を切り替える

VBAでHiddenプロパティを使用して行の表示非表示を切り替えることができます。Rangeオブジェクト.Rows.Hiddenをtrueにすると非表示になります。以下、例です。Sub macro() Dim rng As Range Se...
VBA

VBAでWorksheetsオブジェクトを使用して全シートを取得する

VBAで全シートを取得するにはWorksheetsオブジェクトで簡単に取得することができます。Sub macro() For Each ws In Worksheets Debug.Print ws.Name Next wsEnd Sub結...
VBA

VBAの動的配列とReDim Preserve

VBAには動的配列があると言いました。動的配列はReDimステートメントを使用して配列の要素数を変更することができますが、再度、要素数を変更すると全要素は破棄されます。以下、例です。Sub macro() Dim arr() As Stri...
VBA

VBAの動的配列とReDim

VBAには動的配列と言うのが存在します。宣言方法は以下のように宣言します。Dim arr() As Variant動的配列の初期化はArray関数を使用して以下のように初期化することができます。Array関数で初期化する場合は、配列はVar...
VBA

VBAの配列とArray関数の使い方

VBAの配列とArray関数の使い方についてまとめてみます。まず配列の宣言方法です。Dim arr(3) As VariantVBAでの配列の基底値は0ですが、他の言語と違って0,1,2,3と4つインデックスを持つ配列になります。以下、例で...
VBA

VBAのFor Each文

VBAのFor Each文は以下のように記述します。For Each i In 配列' 処理Next i以下、具体的な例です。Sub macro() For Each i In Array(1, 2, 3) Debug.Print i Ne...
VBA

VBAのCHR(9)

VBAでCHR(9)というのを良く見かけますが、これはなんでしょう。以下、サンプルソースです。Sub macro15()Dim txt As Stringtxt = "A" & Chr(9) & "B"Debug.Print txtEnd ...
VBA

VBAでFormulaプロパティでセルの計算式を取得する

VBAでFormulaプロパティでセルの計算式を取得するには以下のように記述します。Sub macro() Dim txt, i Set txt = Range("D9:D10") For Each i In txt Debug.Print...
VBA

VBAでTextプロパティでセルの値を取得する

VBAでTextプロパティでセルの値を取得するには以下のように記述します。Sub macro() Dim txt, i Set txt = Range("D9:D10") For Each i In txt Debug.Print i.Te...
VBA

VBAでSelectメソッドでセルを選択する

VBAでSelectメソッドでセルを選択するには、以下のように記述します。範囲を選択するには("A1:A3")というように:で範囲を区切ります。Sub macro() Range("A1:B3").SelectEnd Subこのマクロを実行...
VBA

VBAで指定されたセルへ移動する

VBAで指定されたセルへ移動するには、ApplicationオブジェクトのGotoメソッドを使用します。以下のように記述します。Sub macro() Application.Goto ActiveSheet.Range("A1")End ...
VBA

VBAでUsedRangeを使用してセル範囲を取得する

VBAでUsedRangeを使用してセル範囲を取得することができます。以下のエクセルがあるとします。3行4列を使用しているのがわかると思います。この範囲を取得するには以下のように記述します。Sub macro()Dim rg As Rang...
VBA

VBAでWorkSheetオブジェクトの宣言

VBAでWorksheetオブジェクトを宣言するには以下のように記述します。Sub macro() Dim ws As Worksheet Set ws = ActiveSheet Debug.Print ws.NameEnd SubWor...
VBA

VBAでInStrを使用して指定文字位置を返す

VBAでInStrを使用して指定文字位置を返します。Sub macro Dim str = As String str = "aiueo" Debug.Print InStr(str, "u") Debug.Print InStr(str,...
VBA

VBAで小文字大文字変換する

VBAで小文字を大文字に変換するには、UCaseを使用します。大文字を小文字に変換するにはLCaseを使用します。Sub macro() Debug.Print UCase("abc") Debug.Print LCase("DEF")En...
VBA

VBAでFreeFile関数を使用してファイル出力する

VBAでFreeFile関数を使用してファイル出力します。Sub Macro1() Dim n As Integer n = FreeFile Open "D:\work_vba\a.txt" For Output As #n Print ...
VBA

VBAでイミディエイトウィンドウを開く

VBAでイミディエイトウィンドウを開くには、「表示」-「イミディエイトウィンドウ」で表示します。もしくは、Ctrl + gで、イミディエイトウィンドウが表示されます。
VBA

VBAの改行コード

VBAの改行コードはvbLfです。Sub Macro1() Debug.Print "a" & vbLf & "b"End Subイミディエイトウィンドウには以下のように表示されます。ab
VBA

VBAで文字列連結をする

VBAで文字列連結をするには&で連結します。Sub Macro1() Debug.Print "a" & "b"End Subイミディエイトウィンドウには以下のように表示されます。ab
VBA

VBAで現在開いているエクセルの保存先フルパスを取得する

VBAで現在開いているエクセルの保存先フルパスを取得するにはSub Macro1() Debug.Print ThisWorkbook.PathEnd Subで取得します。
VBA

VBAでTSVファイル読み込み

VBAでTSVファイル読み込み
VBA

VBAでCSVファイル読み込み

VBAでCSVファイル読み込みます。CSVファイルを読み込むにはWorkbooks.OpenText Filename:="c:\work_vba\a.csv", _DataType:=xlDelimited, _comma:=Trueとす...
VBA

VBAでフォルダを作成する

VBAでフォルダを作成することができます。Dim fso As ObjectSet fso = CreateObject("Scripting.FileSystemObject")fso.CreateFolder ("c:\vba")vba...
VBA

VBAでハイパーリンクを作成して各シートの目次を作成する

VBAでハイパーリンクを作成するには、for文でループしてActiveSheet.Hyperlinks.Add anchor:=Range("A" & i), Address:="", SubAddress:=Worksheets(i).N...