ねこになりたい

おふとんと朝の別れをするのが辛い人向けです。正論で殴らず見守ってあげてください。

Excelマクロ覚書 ~データの削除編~

図書館で借りてきた某書籍の覚書です。

 

 


【空白のある行を削除する】

空白のあるセルがある行を指定して、削除すればよい。
空白のあるセルを指定するにはSpecialCellsメソッドを使う。

Rangeオブジェクト.SpecialCells(種類, オプション)

※種類

xlCellTypeComments

:コメントが含まれているセル

xlCellTypeConstants :定数が含まれているセル
xlCellTypeFormulas :数式が含まれているセル
xlCellTypeBlanks :空の文字列
xlCellTypeAllFormatConditions :表示形式が設定されているセル
xlCellTypeLastCell :使われたセル範囲内の最後のセル
xlCellTypeVisible :可視セル
xlCellTypeAllFormatConditons :条件付き書式が設定されているセル
xlCellTypeSameFormatConditions :同じ条件付き書式が設定されているセル
xlCellTypeAllValidation :入力規則の設定が含まれているセル
xlCellTypeSameValidation :同じ入力規則の設定が含まれているセル

 

※オプション

xlNumbers

:数値

xlTextValues :文字
xlLogical :論理値
xlErrors :エラー値
Range("D3:D15").SpecialCells(xlCellTypeBlanks).EntireRow.Delete 'D3~D15の空白セルを取得する'

 

【重複データを削除する】

重複データを削除するには、RemoveDuplicatesプロパティを使う。

Rangeオブジェクト.RemoveDuplicate Columns:=チェックする列, Header:~タイトル行

Range("D3:D15").RemoveDuplicate Columns:=Array(1, 2, 3, 4)) 'D3~D15の表の重複データを削除する'

 

【余分な空白を削除する】

余分な空白を削除するには、Trim関数を使う。

Trim(文字列)

Dim i As String

i = 4
Do Until Range("B" & i).Value = ""
  Range("B" & i).Value
= Trim(Range("B" & i).Value) 'D3~D15の表の重複データを削除する'
i = i + 1
Loop

 

【数値のみ削除する】

指定した値が数値かどうかを判定するには、Numeric関数を使う。

isNumeric(値)

数式を含むかどうか判定するには、HasFormulaプロパティを使う。

Rangeオブジェクト.HashFormula

※種類

True

:数式を含む

False :数式を含まない
Dim Temp As Range  '対象セルを処理する変数「temp」を作成する。'

For Each temp In Range("A15:H25")
   If isNumeric(temp.Value) And Not temp.HasFormula Then 'チェックしているセルが「数値で」「数式を含んでない」か調べる'
    temp.Value = "" '条件を満たす場合は、セルを空欄にする'
End If
Next

 

Excelマクロ覚書 ~データ入力・編集編~

図書館で借りてきた某書籍の覚書です。

 

 


【表全体を選択する】

アクティブなセル領域を取得すれば表全体が取得できるので、
CurrentRegionプロパティを使う。

Rangeオブジェクト.CurrentRegion

Range("A3").CurrentRegion.Select
Selection.Borders.LineStyle = xlContinuous

【取得するセル範囲を変更する】

アクティブなセル領域を取得した後で、セル範囲の大きさを変更する。
セル範囲の大きさを変更するにはResizeプロパティを使う。

元のセル範囲.Resize(行数, 列数)

Range("A3").CurrentRegion.Resize(1).Interior.Color = RGB(0, 255, 255)

【新たな入力セルを選択する】

指定した方向の末端のセルを取得したい場合、Endプロパティを使う。

基準となるセル.End(方向)

末端のセル+1で新規入力用のセルが取得できる。
指定した位置から、移動した範囲を取得するにはOffsetプロパティを使う。

基準となるセル.Offset(方向)

※移動先の方向

xlDown :舌へ
xlToLeft :左へ
xlToRight :右へ
xlUp :上へ
Range("A3").End(xlDown).Offset(1).Select  'セルA3から下方向に移動し、Offsetプロパティで1行下のセルを取得する'

【セルにフリガナを設定する】

フリガナを設定するには、SetPhoneticプロパティを使う。

Rangeオブジェクト.SetPhonetic

フリガナに設定されているテキストを取得・設定するにはTextプロパティを使う。

Phoneticオブジェクト.Text

フリガナに関する情報を取得するにはPhoneticプロパティを使う。

Rangeオブジェクト.Phonetic

Dim i As Long

i = 4
Do Until Range("B" & i).Value = "" 'B列が空欄になるまで処理を続行'
Range("B" & i).SetPhonetic 'B列の値にフリガナを設定する'
Range("C" & i).Value = Range("B" & i).Phonetic.Text 'C列にB列に設定したフリガナを入力する'
i = i + 1
Loop

ハイパーリンクを設定する】

ハイパーリンクを取得するには、Hyperlinksプロパティを使う。

Worksheetオブジェクト.Hyperlinks

ハイパーリンクを追加するには、Addメソッドを使う。

Hyperlinksオブジェクト.Add Andhor:= 対象セル, Address:= アドレス, SubAddress:= サブアドレス, TextToDisplay:= 表示テキスト

Dim i As Long

i = 4
Do Until Range("B" & i).Value = "" 'B列が空欄になるまで処理を続行'
Worksheets("目次").Hyperlinks.Add _ 'ワークシート「目次」にハイパーリンクを設定'
Anchor:=Range("B" & i) _ 'B列にハイパーリンクを設定'
, Address:=Range("B" & i).Value & "!A1" '実際にリンクするリンク先を各月のワークシートのセルA1にする'
i = i + 1
Loop

【独自のリストを作成する】

独自のリストを作成するには、AddCustomListプロパティを使う。

Applicationオブジェクト.AddCustomList ListArray:=設定するリスト

Application.AddCustomList ListArray:=Range("D2:D4")           'ユーザーリストに、セルE2~E4のデータを設定する'

【連続するデータを設定する】

児童で連番を振るには、AutoFillプロパティを使う。

Rangeオブジェクト.AutoFill Destination:=セル範囲, Type:= オートフィルの種類

※オートフィルの種類

xlFillCopy

:【セルのコピー】値と形式をコピーする

xlFillSeries :【連続データ】値(連番)をコピーする
xlFillFormats :【書式のみコピー(フィル)】書式のみをコピーする
xlFillValues :【書式なしコピー(フィル)】値のみをコピーする
xlFillDays :【連続データ(日単位)】日単位でコピーする
xlFillWeekDays :【連続データ(週日単位)】週日単位でコピーする
xlFillMonths :【連続データ(月単位)】月単位でコピーする
xlFillYears :【連続データ(年単位)】年単位でコピーする
xlLinearTrend :【連続データ(加算)】連続データを加算してコピーする
xlGrowthTrend :【連続データ(乗算)】連続データを乗算してコピーする
xlFillDefault :【連続データ】規定値を指定してコピーする
Range("A2").AutoFill Destination:=Range("A3:A8")  'セルA2の値を基準に、セルA3~A8の範囲に連続データでオートフィルを行う'

【リストで入力する】

入力規則の設定をするには、Validationプロパティを使う。

Rangeオブジェクト.Validation

入力規則を追加するには、Addプロパティを使う。

Validationオブジェクト.Add Type:= 入力用の種類, Formula1:=入力する値

入力規則を削除するには、Deleteプロパティを使う。

Validationオブジェクト.Delete

※オートフィルの種類

xlValidateCustom

:ユーザ設定

xlInputOnly :すべての値
xlValidateList :リスト
xlValidateWholeNumber :整数
xlValidateDate :日付
xlValidateDecimal :小数点数
xlValidateTextLength :文字列(長さ指定)
xlValidateTime :時刻
Range("B4:C8").Validation.Add _             '入力規則を設定'
Type:=xlValidateList _ '入力用の種類にリストを設定'
, Formula1:="川崎支店, 盛岡支点, 仙台支店" '入力する値を設定'

【文字列の一部を取得する】

左側から指定した文字数だけ取得するには、Leftプロパティを使う。

Left(対象のデータ, 文字数)

Dim i As Long

i = 4
Do Until Range("B"& i).Value = ""
Len(Range("B" & i).Value, 2) 'C列(「姓」欄)に、B列のデータのうち左から2文字分のデータを入力'
  i = i + 1
Loop

指定した位置から指定した文字数だけ取得するには、Mid関数を使う。

Mid(文字列, 開始位置, 文字数)

Dim i As Long

i = 4
Do Until Range("B"& i).Value = ""
Mid(Range("B" & i).Value, 4, 3) 'C列(「姓」欄)に、B列のデータのうち4文字目から3文字目までのデータを入力'
  i = i + 1
Loop

【全角のカタカナに統一する】

文字列を指定した形式に変換するには、StrConv関数を使う。

StrConv(文字列,変換方法)

※変換方法の種類

xlUpperCase

:文字列を大文字に変換

xlLowerCase :文字列を小文字に変換
xlProperCase :文字列の各単語の先頭の文字を大文字に変換
xlWide :文字列内の半角文字を全角文字に変換
xlNarrow :文字列内の全角文字を半角文字に変換
xlKatakana :文字列内のひらがなをカタカナに変換
xlHiragana :文字列内のカタカナを平仮名に変換
xlUnicode :文字列をUnicodeに変換
Dim i As Long

i = 4
Do Until Range("B"& i).Value = "" 'C列のデータが空欄になるまで処理を繰り返す'
Range("C" & i).Value = _ ''
StrConv(Range("C" & i).Value, vbWide) 'C列のデータを、全角に変換したデータで置き換える'
  i = i + 1
Loop

【アルファベットを大文字に統一する】

指定した文字を大文字に変換するには、Ucase関数を使う。

Ucase(文字列)

Dim i As Long

i = 4
Do Until Range("B"& i).Value = ""
Range("B" & i).Value = Ucase(Range("B" & i).Value) 'B列のデータを大文字に変換したデータで置き換える'
  i = i + 1
Loop

【バラバラに入力された文字を結合する】

文字列を連結するには、&演算子を使う。

文字列1 & 文字列2

Dim i As Long

i = 4
Do Until Range("B"& i).Value = ""
Range("D" & i).Value = Range("B" & i).Value & Range("C" & i).Value 'D列のデータをB列とC列のデータを結合した文字で入力する'
  i = i + 1
Loop

【空白の半角/全角を統一する】

指定した文字を、指定した文字に置き換えるにはReplace関数を使う。

Replace(対象, 検索文字, 置換文字)

Dim i As Long

i = 4
Do Until Range("B"& i).Value = ""
Range("D" & i).Value = Replace(Range("B" & i).Value, " ", " ") 'B列の半角スペースを全角スペースに置き換える'
  i = i + 1
Loop

Excelマクロ覚書 ~エラー処理編~

図書館で借りてきた某書籍の覚書です。

 

 


【エラーが発生したときの処理を追加する】

想定外のことがあっても処理を続けたい場合は、On Error Resume Nextステートメントを使う。
On Error Resume Nextステートメントを使うことで、エラー発生時には直下の処理を無視して次の行の処理を行う。

On Error Resume Next

Dim Sum As Long
Dim i As Long

On Error Resume Next 'エラーが発生したら、Forステートメント以下を無視する'
For i = 4 To 15 Sum = Sum + Range("F" & i).Value Next MsgBox "合計額:" & Sum End If

指定した位置に処理を移す場合は、On Error GoToステートメントを使う。

On Error GoTo 行ラベル
      処理
   エラー発生箇所
    Exit Sub

行ラベル:
    エラー処理ルーチン

Dim Sum As Long
Dim i As Long

On Error GoTo ErrCd1 'エラーが発生したら、ErrCd1に処理を移す'
For i = 4 To 15 Sum = Sum + Range("F" & i).Value Next MsgBox "合計額:" & Sum Exit Sub

ErrCd1:
MsgBox "数値以外のデータが入力されています。処理を終了します。"

エラー発生時に、エラー内容に応じた処理を適用させる場合、Errプロパティを使う。
Numberプロパティでエラー番号を取得する。

Err.Number

Dim Sum As Long
Dim i As Long

On Error GoTo ErrCd1 'エラーが発生したら、ErrCd1に処理を移す'
For i = 4 To 15 Sum = Sum + Range("F" & i).Value Next MsgBox "合計額:" & Sum Exit Sub

ErrCd1

Select Case Err.Number
Case 11
Range("E" & i).Value = "0です。"
Case 13
Range("E" & i).Value = "数値を入力"
End Select
Resume Next

【コードを簡略化する】

処理をまとめる場合は、Withステートメントを使う。

With 対象
         .処理1
         .処理2
End With

With Range("A3:G3")
.Interior.Color = RGB(0, 255, 255)
          .Font.Name = "MS Pゴシック"
        .Font.Size = 14

        .Font.Bold = True
        .Font.Italic = True
        .Borders(xlEdgeBottom).LineStyle = xlDouble

End With

Excelマクロ覚書 ~条件分岐編~

図書館で借りてきた某書籍の覚書です。

 

 


【条件を満たすときに処理を行う】

処理によって条件を分けるときはIfステートメントを使う。
入れ子にすることもできるので、複数の条件分岐も可能。
Endの後にIfを書き忘れないよう注意。

If 条件式 Then
   処理1
Else
   処理2
End If


If Range("G4").Value >= 70 Then  'G4セルが70以上なら'
MsgBox "合格"         '「合格」と表示' Else              'それ以外なら' MsgBox "不合格"       '「不合格」と表示' End If

 

【条件を満たすときに処理を分岐する】

複数の分岐条件が必要な場合は、ElseIf以下に条件を記述できる。

If 条件式 Then
   処理1
ElseIf
   処理2

Else
   処理3
End If


If Range("G4").Value >= 70 Then    'G4セルが70以上なら'
MsgBox "合格"             '「合格」と表示'
ElseIf Range("G4").Value >= 50 Then  'G4セルが50以上なら'
          MsgBox "再試"        '「再試」と表示'
      Else MsgBox "不合格"           '「不合格」と表示' End If

 

【条件を満たすときに処理を分岐する2】

固定値に応じた処理を分岐する場合は、Select Caseステートメントを使う。

Select Case 条件判断の対象
Case 条件式
   処理1

Case 条件式
   処理2
Case Else
   処理3


Dim Age As Long
Age = Range("C4")
Select Case age
Case age >=30    'G4セルが30以上なら'
MsgBox "30代"
Case age >=20    'G4セルが20以上なら'
MsgBox "20代"
Case Else
MsgBox "その他"
      End Select

 

【条件が成立している間は処理を繰り返す】

条件が成立している間だけ繰り返す場合は、Forステートメントを使う。

for カウンタ変数 = 初期値 To 終了値
 繰り返す処理

Next


Dim i As Long
im Sum As Long
For i = 4 To 8
Sum = Sum + Range("C" & i) .Value
Next
MsgBox "合計額:" & Sum

 処理を強制的に抜ける場合はExitステートメントを使う。

Exit 処理対象


Dim i As Long
im Sum As Long

For i = 4 To 8
If Range("C"&i).Value = "" Then
MsgBox "セルC" & i"のデータが入力されていません
Exit Sub
End Sub Sum = Sum + Range("C" & i) .Value Next MsgBox "合計額:" & Sum

 

【指定した回数だけ同じ処理を繰り返す】

処理を指定した分だけ繰り返す場合は、Do Loopステートメントを使う。

Do While 条件式
      繰り返す処理
Loop


Dim i As Long
im Sum As Long
i = 4
      Do While Range("C" & i).Value <> ""  'G列が空欄ではない間' Sum = Sum + Range("C" & i),Value       '合計額にCの値を加算' Loop                     'ループ処理' MsgBox "合計額:" & Sum

 

【条件が成立するまで処理を繰り返す】

条件が成立するまで処理を繰り返すには、Do Loopステートメントを使う。

Do Until 条件式
      繰り返す処理
Loop


Dim i As Long
Dim Sum As Long
i = 4 Do Until Range("C" & i).Value = "" 'C列が空欄になるまで処理を繰り返す'
Sum = Sum + Range("C" & i).Value     'Cに値を加算'
i = i + 1                '次のセルに移動'
Loop                   '処理をループする'
MsgBox "合計金額:"& Sum

 

【オブジェクトに対して処理を繰り返す】

全てのワークシートに処理を適用させるなど、オブジェクト単位で繰り返し処理を行う場合はFor Each Nextステートメントを使う。

For Each 要素変数 In 対象
      繰り返す処理
Next


Dim i As Long
Dim wK As Worksheet
For Each wK In Worksheets '全てのワークシートを取得する'
If wK.Name = "2019年7月" Then 'ワークシートが2019年7月であるか確認' wK.Activate
MsgBox "「2019年7月」ワークシートが存在します"

Exit Sub
End If
Next MsgBox "「2019年7月」ワークシートは存在しません"

Excelマクロ覚書 ~変数・定数編~

図書館で借りてきた某書籍の覚書です。

キャプチャ貼らないとな・・・忘れる。

 

 


【変数を使用する】

変数を宣言するには、Dimステートメントを使う。

Dim 変数名 As データ型

Dim 変数名 As データ型, 変数名 As データ型


Dim Money As Long  '「Money」変数を用意する
Money = Range("D4").Value '「Money」変数にD4の値を代入する MsgBox "所持金:" & Money 'メッセージを表示する'

 

【オブジェクト変数を使用する】

オブジェクト変数を宣言するには、Dimステートメントを使う。

Dim オブジェクト変数名 As オブジェクト


Dim wK As Worksheet  '変数「wK」にオブジェクト変数を宣言する
Set wK = Worksheets.Add 'ワークシートを追加し、wKに代入する'
sh.Name = "新規ワークシート '追加したwKオブジェクト変数のシート名を変更する

 

【定数を使用する】

定数を宣言するには、Constステートメントを使う。

Const 定数名 As データ型


Const Tax As Currency = 0.08   '変数「wK」にオブジェクト変数を宣言する
MsgBox "消費税:" & Range("H4").Value * Tax   'H4シートに消費税を加算してメッセージ表示する'

 

【配列を使用する】

配列を宣言するには、Dimステートメントを使う。

Dim 配列名(0から) As データ型


Dim i =Long
Dim Person As String  '配列「Person」を宣言'
For i = 0 To UBound(Person)
Person(i) = Range("B" & i + 4).Value
Next MsgBox "氏名:" & Person(2)

 

【動的配列を使用する】

毎月データ件数が変わる場合などは、ReDimステートメントを使う

ReDim 配列名 As データ型


ReDim Person As String  '配列「Person」を宣言する'
ReDim Person(Range("B1:B8").Rows.Count - 1) As String  '配列の要素数を求める'    Person(0) = Range("A4").Value
       Person(1) = Range("A5").Value
       Person(2) = Range("A6").Value

Excelマクロ覚書 ~印刷編~

図書館で借りてきた某書籍の覚書です。
にゃ~ん。

 

 


【印刷プレビューする】

ブックを印刷プレビューするにはPrintOutメソッドを使う。

ActiveSheetプロパティ.PrintOut Preview = True / False

※設定できる値

True :印刷プレビューする
False :印刷プレビューしない
ActiveSheet.PrintOut Preview = True  '印刷プレビューを表示する'

【余白を設定する】

ページレイアウトを設定するにはPageSetupプロパティを使う。
TopMarginプロパティなどを使うことで、余白が設定できる。

Worksheetsプロパティ.PageSetup.TopMargin = 値
Worksheetsプロパティ.PageSetup.BottomMargin = 値
Worksheetsプロパティ.PageSetup.LeftMargin = 値
Worksheetsプロパティ.PageSetup.RightMargin = 値

Worksheets("2019年").PageSetup = 5  '5ポイントの余白を設定する'

余白はセンチメートル単位でも設定できる。
その場合はCentimetersToPointsメソッドを使う。

Applicationプロパティ.CentimetersToPoints(数値)


【印刷位置を設定する】

印刷位置を設定するにはCenterHorizontallyプロパティを使う。

Worksheetsプロパティ.PageSetup.CenerHorizontally = True / False

※設定できる値

True :水平方向の中央に配置
False :配置しない
Worksheets("2019年").PageSetup CenterHorizontally= True  '印刷位置を水平方向のページ中央にする'

用紙の向きはOrientationプロパティから設定できる。

Applicationプロパティ.PageSetup.Orientation = 方向

※設定できる値

xlPortrait :縦方向
xlLandscape :横方向
Worksheets("2019年").PageSetup Orientation = xlPortrait  '縦方向に指定する'

【指定した枚数分印刷する】

ブックを指定した枚数だけ印刷するにはPrintOutメソッドに引数Copiesを使う。

ActiveSheetプロパティ.PrintOut Copies = 枚数

Worksheet("2019年").PrintOut Copies = 3  '3枚印刷する'

指定したページを印刷するには、引数FromとToを使う

ActiveSheetプロパティ.PrintOut From := 開始ページ, To := 終了ページ

Worksheets("2019年").PrintOut From:= 2, To:= 5  ' 2ページ目~3ページ目までを印刷する'

部数単位で印刷するには引数Collateを使う。

ActiveSheetプロパティ.PrintOut Collate = True / False

True :部数単位で印刷する
False :部数単位で印刷しない
Worksheet("2019年").PrintOut Collate:= True  '部数単位で印刷する'

【ヘッダー・フッターの設定をする】

ヘッダーとフッターの設定をするには、LightHeaderプロパティなどを使う。

ActiveSheetプロパティ.PageSetup LeftHeader = "ヘッダー名"

ActiveSheetプロパティ.PageSetup RightHeader = "ヘッダー名"

ActiveSheetプロパティ.PageSetup CenterHeader = "ヘッダー名"


Worksheet("2019年").PageSetup LeftHeader:= "タイトル"   'ヘッダー中央部にタイトルを設定'
Worksheet("2019年").PageSetup RightHeader:= "&D"   '日付'
Worksheet("2019年").PageSetup LeftHeader:= "&P"   'ページ番号'

【印刷物にロゴを印刷する】

ロゴを印刷する位置を指定してファイルを添付する。
たとえば、LeftHeaderPictureだと左側に図が挿入される。

ActiveSheetプロパティ.PageSetup LeftHeaderPicture.Filename = "ファイル名"

ActiveSheetプロパティ.PageSetup RightHeaderPicture.Filename = "ファイル名"

ActiveSheetプロパティ.PageSetup CenterHeaderPicture.Filename = "ファイル名"

Worksheet("2019年").PageSetup LeftHeaderPicture:= "C\User\Excel\Logo.png"   '左側にロゴを指定する'

【印刷範囲の設定をする】

PrintAreaにセル範囲を設定することで、印刷範囲を設定できる。

PageSetupオブジェクト.PrintArea = セル範囲

Worksheet("2019年").PageSetup PrintArea:= "A1:G36"   'ワークシート2019年の印刷範囲を、セルA1~G36に設定する'

【行タイトル・列タイトルを設定する】

PrintTitleRows、PrintTitleColumnsプロパティを使うことで、列タイトルと行タイトルを設定する。

PageSetupオブジェクト.PrintTitleRows = セル範囲

PageSetupオブジェクト.PrintTitleColumn = セル範囲

Worksheet("2019年").PageSetup PrintTitleRows:= "$2:$2"   '「2019年」ワークシートの行タイトルを2行目に設定する'

【セルの行列番号を印刷する】

行列番号を印刷するにはPrintHeadingsを使う。

True :行列番号の印刷を行う
False :行列番号の印刷を行わない

PageSetupオブジェクト.PrintHeadings = 値

Worksheet("2019年").PageSetup PrintHeadings:= True   '行列番号の印刷を行う'

Excelマクロ覚書 ~ブック操作編~

図書館で借りてきた某書籍の覚書です。
なんか見づらいので、いつか清書します・・・。

 

 

【ブックを新規に作成する】

ブックを新規作成するにはAddメソッドを使う。

Worksheetsコレクション.Add

Worksheets.Add  'ワークブックを追加する'

 


【ブックを開く】

既存のブックを開くにはOpenメソッドを使う。

Worksheetsコレクション.Open

Worksheets.Open Fielname:="C:User\Excel\今年度売上.xlsx"  'C:User\Excelフォルダの「今年度売上.xlsx」ファイルを開く'

読み取り専用でブックを開くには、引数ReadOnlyにTrueを指定する。


Worksheets.Open Fielname:="C:User\Excel\今年度売上.xlsx", ReadOnly:=True  'C:User\Excelフォルダの「今年度売上.xlsx」ファイルを読み取り専用で開く'

【ブックを保存する】

ブックを上書き保存するにはSaveメソッドを使う。

ThisWorkbook.Save

ThisWorkbook.Save  '上書き保存する'

ブックを名前をつけて保存するにはSaveAsメソッドを使う。

ThisWorkbook.SaveAs

ThisWorkbook.Save  '名前をつけて保存する'

【ブックをアクティブにする】

ブックをアクティブ(切り替え表示)にするにはActivateメソッドを使う。

Workbooksオブジェクト.Activate


Workbooks("今年度売上.xlsx").Activate  '「今年度売上.xlsx」をアクティブにする'

アクティブなブックの確認をするにはNameプロパティを使う。

ActiveWorkbook.Name

MsgBox ActiveWorkbook.Name  'ダイアログボックスにアクティブなブック名を表示する'

【ブックを閉じる】

ブックを閉じるにはCloseメソッドを使う。

Workbooksオブジェクト.Close

ThisWorkbook.Close  '閉じる'

上書き保存せずに閉じるには、SaveChangesにFalseを設定する。
変更後は、必ずTrueにする。
ただし、保存してから閉じるのが基本。

Workbooksオブジェクト.Close SaveChanges: = False


Workbooks("Saving.xslm").Close  '閉じる'

 

すべてのブックを閉じるにはFor Each~Nextステートメントを使う


For Each In Workbooks 
Dim temp As Close 
SaveChange Temp 
Next

【PDFとして保存する】

ブックをPDF保存するには。ExportAsFixedFormatメソッドを使う。

Workbooksオブジェクト.ExportAsFixedFormat Type := ファイル形式, File:=ファイル名


Workbooks("今年度売上.xlsx").ExportAsFixedFormat _ Type := xlTypePDF, _ Filename := "C:\User\ExcelVBA\今年度売上.pdf"   '「今年度売上.xlsx」をPDFにして、C:\User\ExcelVBAフォルダに保存する'

Excelを終了する】

Excelを終了するには。Quitメソッドを使う。

Applicationプロパティ.Quit

Application.Quit   'Excelを閉じる'