VBAVBAでfor文やマイナスするfor文の書き方 VBAでfor文やマイナスするfor文の書き方VBAでfor文やマイナスするfor文の書き方についてです。基本的には以下のように記述します。For i = 1 To 10 ' 処理Next逆にカウンタ変数を減らしたい場合はStepを使...2017.01.25VBA
VBAVBAでピボットを折りたたみしたり展開したりする方法 VBAでピボットを折りたたみしたり展開したりする方法です。 以下は指定したフィールド名を全て折りたたむ例です。 ActiveSheet.PivotTables("ピボットテーブル名").PivotFields("フィールド名").Show...2017.01.25VBA
VBAVBAで書式設定する方法や表示した値を取得する方法 VBAで書式設定する方法や表示した値を取得する方法です。 書式設定はNumberFormatとNumberFormatLocalの2種類で設定できます。 例えば日付形式を設定したい例です。 Sheets("シート名").Range("A...2017.01.24VBA
VBAVBAでシートから別シートにコピーする方法 VBAでシートから別シートにコピーする方法です。 A1セルからE10セルを別シートにコピーする例です。 Sheets("シート名").Range("A1:E10").CurrentRegion.Copy Sheets("別シート名").R...2017.01.24VBA
VBAVBAでワークシートの最終行を取得する VBAでワークシートの最終行を取得する方法です。 Dim maxRow As Long maxRow = Sheets("シート名").Range("A1").End(xlDown).Row これでシート名のA1セルの一番下までの行数を取得...2017.01.24VBA
VBAVBAで行列を非表示にする VBAで行を非表示にするにはHiddenプロパティを使用します。 Sub macro() Rows("2:5").Hidden = True End Sub Rowsで行範囲を指定します。上記では2行目から5行目を指定し、Trueにすること...2016.05.07VBA
VBAVBAで配列をループする VBAで配列をループするVBAで配列をループします。Sub macro() Dim arr() As String arr = Split("aa;bb;cc",";") For Each i In arr MsgBox i ...2016.03.26VBA
VBAVBAでサブフォルダを操作する VBAでサブフォルダを操作するVBAで指定したフォルダのオブジェクトはGetFolderメソッドで操作します。Sub macro() Dim fso As Object Set fso = CreateObject("Scripting...2016.03.26VBA
VBAVBAでブックを開く VBAでブックを開くVBAでエクセルブックを開くには、Openメソッドを使用します。指定したファイルが存在しない場合はエラーとなります。以下では読み取り専用にはしていません。Sub macro() Dim wk As WorkBook ...2016.03.26VBA
VBAVBAで改ページプレビューと標準にする VBAで改ページプレビューと標準にするVBAで改ページプレビューと標準にするにはActiveWindow.Viewを変更します。xlPageBreakPreviewでプレビューモードにします。Sub macro() ActiveWindo...2016.03.26VBA
VBAVBAでセル位置をA1にする VBAでセル位置をA1にするVBAでセル位置をA1にするにはSelectメソッドでセル位置を指定します。Sub macro() ActiveSheet.Range("A1").SelectEnd Sub2016.03.26VBA
VBAVBAでフォルダをコピーする VBAでフォルダをコピーするVBAでフォルダをコピーするには、copyFolderを使います。第一引数がコピー元フォルダ、第二引数がコピー先フォルダになります。Sub macro() Dim fso As Object Set fso ...2016.03.21VBA
VBAVBAでファイルの存在を調べる VBAでファイルの存在を調べるVBAでファイルの存在を調べるには、fileExistsを使います。存在する場合はtrue,存在しない場合はfalseを返します。Sub macro() Dim fso As Object Set fso ...2016.03.21VBA
VBAVBAでフォルダの存在を調べる VBAでフォルダの存在を調べるVBAでフォルダの存在を調べるには、FolderExistsを使います。存在する場合はtrue,存在しない場合はfalseを返します。Sub macro() Dim fso As Object Set fs...2016.03.21VBA
VBAVBAのString型の文字列長を*で指定する VBAのString型の文字列長を*で指定することができます。 通常は以下のように指定します。 Dim str As String これに、「* 文字列長」を追記すれば文字列長を指定することが可能です。 Dim str As String...2016.03.06VBA
VBAVBAのTypeName関数で型を調べる VBAのTypeName関数で型を調べる事ができます。 以下のように記述します。 Sub macro() Dim a As Long Dim b As String Dim c As Double Debug.Print TypeName...2016.03.06VBA
VBAVBAでHiddenプロパティを使用して行の表示非表示を切り替える VBAでHiddenプロパティを使用して行の表示非表示を切り替えることができます。 Rangeオブジェクト.Rows.Hiddenをtrueにすると非表示になります。以下、例です。 Sub macro() Dim rng As Ran...2016.03.06VBA
VBAVBAでWorksheetsオブジェクトを使用して全シートを取得する VBAで全シートを取得するにはWorksheetsオブジェクトで簡単に取得することができます。 Sub macro() For Each ws In Worksheets Debug.Print ws.Name Next w...2016.03.06VBA
VBAVBAの動的配列とReDim Preserve VBAには動的配列があると言いました。 動的配列はReDimステートメントを使用して配列の要素数を変更することができますが、再度、要素数を変更すると全要素は破棄されます。以下、例です。 Sub macro() Dim arr() As...2016.03.06VBA
VBAVBAの動的配列とReDim VBAには動的配列と言うのが存在します。 宣言方法は以下のように宣言します。 Dim arr() As Variant 動的配列の初期化はArray関数を使用して以下のように初期化することができます。 Array関数で初期化する場合は、...2016.03.06VBA
VBAVBAの配列とArray関数の使い方 VBAの配列とArray関数の使い方についてまとめてみます。 まず配列の宣言方法です。 Dim arr(3) As Variant VBAでの配列の基底値は0ですが、他の言語と違って0,1,2,3と4つインデックスを持つ配列になります。 ...2016.03.06VBA
VBAVBAのFor Each文 VBAのFor Each文は以下のように記述します。 For Each i In 配列 ' 処理 Next i 以下、具体的な例です。 Sub macro() For Each i In Array(1, 2, 3) Debug...2016.03.05VBA
VBAVBAのCHR(9) VBAでCHR(9)というのを良く見かけますが、これはなんでしょう。 以下、サンプルソースです。 Sub macro15() Dim txt As String txt = "A" & Chr(9) & "B" Debug.Print t...2016.03.05VBA
VBAVBAでFormulaプロパティでセルの計算式を取得する VBAでFormulaプロパティでセルの計算式を取得するには以下のように記述します。 Sub macro() Dim txt, i Set txt = Range("D9:D10") For Each i In txt ...2016.03.05VBA
VBAVBAでTextプロパティでセルの値を取得する VBAでTextプロパティでセルの値を取得するには以下のように記述します。 Sub macro() Dim txt, i Set txt = Range("D9:D10") For Each i In txt Debug...2016.03.05VBA
VBAVBAでSelectメソッドでセルを選択する VBAでSelectメソッドでセルを選択するには、以下のように記述します。 範囲を選択するには("A1:A3")というように:で範囲を区切ります。 Sub macro() Range("A1:B3").Select End Sub こ...2016.03.05VBA
VBAVBAで指定されたセルへ移動する VBAで指定されたセルへ移動するには、ApplicationオブジェクトのGotoメソッドを使用します。 以下のように記述します。 Sub macro() Application.Goto ActiveSheet.Range("A1"...2016.03.05VBA
VBAVBAでUsedRangeを使用してセル範囲を取得する VBAでUsedRangeを使用してセル範囲を取得することができます。 以下のエクセルがあるとします。 3行4列を使用しているのがわかると思います。この範囲を取得するには以下のように記述します。 Sub macro() Dim rg...2016.03.05VBA
VBAVBAでWorkSheetオブジェクトの宣言 VBAでWorksheetオブジェクトを宣言するには以下のように記述します。 Sub macro() Dim ws As Worksheet Set ws = ActiveSheet Debug.Print ws.Name En...2016.03.04VBA
VBAVBAでInStrを使用して指定文字位置を返す VBAでInStrを使用して指定文字位置を返します。 Sub macro Dim str = As String str = "aiueo" Debug.Print InStr(str, "u") Debug.Print I...2016.03.04VBA
VBAVBAで小文字大文字変換する VBAで小文字を大文字に変換するには、UCaseを使用します。 大文字を小文字に変換するにはLCaseを使用します。 Sub macro() Debug.Print UCase("abc") Debug.Print LCase("...2016.03.04VBA
VBAVBAでFreeFile関数を使用してファイル出力する VBAでFreeFile関数を使用してファイル出力します。 Sub Macro1() Dim n As Integer n = FreeFile Open "D:\work_vba\a.txt" For Output As #...2016.03.02VBA
VBAVBAでイミディエイトウィンドウを開く VBAでイミディエイトウィンドウを開くには、「表示」-「イミディエイトウィンドウ」で表示します。 もしくは、Ctrl + gで、イミディエイトウィンドウが表示されます。2016.03.02VBA
VBAVBAの改行コード VBAの改行コードはvbLfです。 Sub Macro1() Debug.Print "a" & vbLf & "b" End Sub イミディエイトウィンドウには以下のように表示されます。 a b2016.03.02VBA
VBAVBAで文字列連結をする VBAで文字列連結をするには&で連結します。 Sub Macro1() Debug.Print "a" & "b" End Sub イミディエイトウィンドウには以下のように表示されます。 ab2016.03.02VBA
VBAVBAで現在開いているエクセルの保存先フルパスを取得する VBAで現在開いているエクセルの保存先フルパスを取得するには Sub Macro1() Debug.Print ThisWorkbook.Path End Sub で取得します。2016.03.02VBA
VBAVBAでCSVファイル読み込み VBAでCSVファイル読み込みます。 CSVファイルを読み込むには Workbooks.OpenText Filename:="c:\work_vba\a.csv", _ DataType:=xlDelimited, _ comma:=T...2016.02.28VBA
VBAVBAでフォルダを作成する VBAでフォルダを作成することができます。 Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") fso.CreateFolder ("c:\vba")...2016.02.28VBA
VBAVBAでハイパーリンクを作成して各シートの目次を作成する VBAでハイパーリンクを作成するには、for文でループして ActiveSheet.Hyperlinks.Add anchor:=Range("A" & i), Address:="", SubAddress:=Worksheets(i)....2016.02.27VBA
VBAVBAのfor文で全シート名を表示する VBAのfor文は以下のように記述します。 for i = 初期値 To 最大値 ' 処理 Next 現在のブックのシート数は ActiveWorkbook.Worksheets.Count で求めることができます。 for文でループ...2016.02.27VBA