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("フィールド名").ShowD...
VBA

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

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

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

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

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

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

VBAで行列を非表示にする

VBAで行を非表示にするにはHiddenプロパティを使用します。 Sub macro() Rows("2:5").Hidden = True End Sub Rowsで行範囲を指定します。上記では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 ...
VBA

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

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

VBAでブックを開く

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

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

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

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

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

VBAでセル位置をA1にする

VBAでセル位置をA1にする VBAでセル位置をA1にするにはSelectメソッドでセル位置を指定します。 Sub macro() ActiveSheet.Range("A1").Select End 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 fs...
VBA

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

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

VBAのTypeName関数で型を調べる

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

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

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

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

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

VBAの動的配列とReDim Preserve

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

VBAの動的配列とReDim

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

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

VBAの配列とArray関数の使い方についてまとめてみます。 まず配列の宣言方法です。 Dim arr(3) As Variant VBAでの配列の基底値は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...
VBA

VBAのCHR(9)

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

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

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

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

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

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

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

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

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

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

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

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

VBAでWorksheetオブジェクトを宣言するには以下のように記述します。 Sub macro() Dim ws As Worksheet Set ws = ActiveSheet Debug.Print ws.Name End Sub ...
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")...
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 イミディエイトウィンドウには以下のように表示されます。 a b
VBA

VBAで文字列連結をする

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

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

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

VBAでTSVファイル読み込み

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

VBAでCSVファイル読み込み

VBAでCSVファイル読み込みます。 CSVファイルを読み込むには Workbooks.OpenText Filename:="c:\work_vba\a.csv", _ DataType:=xlDelimited, _ comma:=Tr...
VBA

VBAでフォルダを作成する

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

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

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