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を閉じる'
Excelマクロ覚書 ~ワークシートの操作編~
図書館で借りてきた某書籍の覚書です。
- 【ワークシートを選択する】
- 【ワークシートをコピーする】
- 【ワークシートを移動する】
- 【ワークシートを削除する】
- 【ワークシートに名前をつける】
- 【ワークシートを追加する】
- 【ワークシートを非表示にする】
- 【ワークシートの見出しに色をつける】
- 【ワークシートを保護する】
【ワークシートを選択する】
複数のワークシートから指定されたワークシートを選ぶときは、
Worksheetsプロパティを使う。
Worksheetではないので注意(sを忘れない)
Worksheets(値)
Worksheets("2018年").Select '2018年のシートを選択する'
複数のワークシートを選択するときは、Array関数を使う。
Array(要素A, 要素B, 要素C...)
Worksheets(Array("3月","5月")).Select '3月と5月のシートを選択する'
【ワークシートをコピーする】
指定されたワークシートをコピーするときは、Copyメソッドを使う。
Worksheetsプロパティとの間は半角スペースで開ける。
Worksheetsプロパティ.Copy before / after
※指定できる値
Before | :指定したワークシートの左側 |
After | :指定したワークシートの右側 |
Worksheets("2018年").Copy After:="2017年" '2017年の後ろに2018年のシートをコピーする'
【ワークシートを移動する】
指定されたワークシートを移動するときは、Moveメソッドを使う。
引数には何も指定しない場合は、新規ワークシートに移動する。
Worksheetsプロパティ.Move 移動する位置
※指定できる値
Before | :指定したワークシートの左側 |
After | :指定したワークシートの右側 |
Worksheets("表紙").Move Before:="集計用No1" '集計用No1の前に表紙を移動させる
【ワークシートを削除する】
ワークシートを削除するときは、Deleteメソッドを使う。
Worksheetsプロパティ.Delete
誤操作を防ぐために、削除前には警告メッセージを表示するのがベター。
警告メッセージを表示するには、Display.Alertプロパティを使う。
Application.DisplayAlerts = True / False
※指定できる値
True | :メッセージを表示する。Excelを再起動するまで設定が残るのを防ぐため、処理の最後には必ずTrueにする。 |
False | :メッセージを表示しない。 |
Application.DisplayAlerts = True
Worksheets("前年度").Delete '前年度シートを削除する'
【ワークシートに名前をつける】
ワークシートに名前をつけるにはNameプロパティを使う。
Worksheetsプロパティ.Name = 値
Worksheets("initial").Name = Worksheets(i).Range("A1").Value. 'セルA1の値をシート名に設定する'
【ワークシートを追加する】
ワークシートを追加するにはAddメソッドを使う。
Worksheetsプロパティ.Add Before / After
Worksheets.Add After:= Worksheets("7月"). '7月の後に新しいシートを追加する'
ActiveSheet.Name = 8月 . '新しいシート名を「8月」にリネームする'
【ワークシートを非表示にする】
ワークシートを非表示にするにはVisibleプロパティを使う。
Worksheetsプロパティ.Visible = 値
※指定できる値
xlSheetVisible | :表示する |
xlSheetHidden | :非表示にする |
True | :表示する |
False | :非表示にする |
Worksheets("4月").Visible = xlSheetHidden. '4月のシートを非表示にする'
【ワークシートの見出しに色をつける】
ワークシートの見出しに色をつけるには、TabオブジェクトとColorプロパティを使う。
Worksheetsプロパティ.Tab.Color
※指定できる値
RGB(赤, 青, 緑) | :色の割合を設定する |
xlColorIndexNone | :シート見出しの色を指定しない(標準) |
Worksheets("4月").Tab.Color = RGB(255, 0, 0). '「4月」のワークシートに赤色を設定する'
【ワークシートを保護する】
ワークシートのセルをロックするにはLockedプロパティを使う。
Rangeプロパティ.Locked = True / False
※指定できる値
True | :ロックする(標準) |
False | :ロックを解除する |
Range("B5").Locked = False. 'セルB5のロックを解除する'
ワークシートを保護するにはProtectメソッドを使う。
通常は、セルのロックを解除してからワークシートを保護する。
保護を解除するにはUnprotectプロパティを使う。
Worksheetsプロパティ.Protected
Worksheetsプロパティ.Unprotected
Worksheets("Sheet1").Protect. 'Sheet1を保護する'
Excelマクロ覚書 ~行と列の操作編~
図書館で借りてきた某書籍の覚書です。
【行・列を選択する】
1行をまとめて取得する場合はRowsプロパティを、
1列をまとめて取得する場合はColmnsプロパティを使う。
行・列が連続する場合は、必ず数値をダブルクォーテーションで囲む。
また、指定した行・列を結合する場合はUnionメソッドを使う。
Rows(行番号)
Columns(列番号)
Union(対象列 or 対象行)
Union(Rows(1), Rows(3)).Select '1行目と3行目を選択する'
【現在のセルがある行(列)を選択する】
指定したセルを含む行全体を取得する場合は、EntireRowプロパティを使う。
指定したセルを含む列全体を取得する場合は、EntireColumnプロパティを使う。
Rangeオブジェクト.EntireRow
Rangeオブジェクト.EntireColumn
Range("B1").EntireRow.Select 'B行を選択する'
【行・列の幅や高さを調節する】
行の高さを調節するにはColumnWidthプロパティ、
列の高さを調節するにはRowHeightプロパティを使う。
Columnsプロパティ.ColumnWidth = 値
Rowsプロパティ.EntireColumn = 値
Columns("B1:10").ColumnWidth = 15 'B1~10行の高さを15ポイントにする'
【行・列の幅や高さを自動調節する】
行・列のサイズを自動調節するには、AutoFitメソッドを使う。
Columnsプロパティ.AutoFit = 値
Rowsプロパティ.AutoFit = 値
Columns("B1:10").AutoFit 'B1~10行の高さを自動調節する'
【行・列を非表示にする】
行・列を非表示にするには、Hiddenプロパティを使う。
Columnsプロパティ.Hidden = True / False
Rowsプロパティ.Hidden = True / False
※指定できる値
True | :非表示にする |
False | :表示する |
Columns("B1:10").Hidden = True 'B1~10列を非表示にする'
【行・列を挿入する】
行・列を挿入するにはInsertメソッドを使う。
列の挿入はColumnsプロパティ、行の挿入はRowsプロパティ。
Columnsプロパティ.Insert
Rowsプロパティ.Insert
書式を適用するには、引数CopyOriginを使う。
Rows("10").Insert CopyOrigin := x1FormatFromRightOrBelow '10行目に挿入した後、下(11行目)の書式を適用する'
【行・列を削除する】
指定した行・列を削除するにはDeleteメソッドを使う。
Columnsプロパティ.Delete
Rowsプロパティ.Delete
Rows("D").Delete 'D行を削除する'
Excelマクロ覚書 ~罫線編~
図書館で借りてきた某書籍の覚書です。
- 【罫線を設定する】
- 【セル下側に罫線を設定する】
- 【罫線の色を設定する】
- 【罫線の太さを変更する】
- 【表示形式をカンマ区切りにする】
- 【表示形式を指定した日付にする】
- 【セルの塗りつぶしの設定をする】
- 【セルの背景色の設定をする】
【罫線を設定する】
罫線を設定するにはFontメソッドのBordersプロパティを使う。
(sつけるのを忘れないように!)
Rangeオブジェクト.Borders.LineStyle = 値
※指定できる値
xlContinuous | :実践 |
xlDash | :破線 |
xlDashDut | :一点鎖線 |
xlDashDotDot | :二重鎖線 |
xlDot | :点線 |
xlDouble | :2本線 |
xlSlantDashDot | :斜破線 |
xlLineStyleNone | :罫線の設定を解除する |
Range("A1").Borders.LineStyle = xlContinuous 'A1セルに実践の罫線をつける'
【セル下側に罫線を設定する】
セル下側に罫線を設定するにはBordersプロパティで指定する。
Rangeオブジェクト.Borders(値)
※指定できる値
xlDiagonalDown | :セルの左上隅から右下への罫線 |
xlDiagonalUp | :セルの左下隅から右上への罫線 |
xlEdgeBottom | :下側の鎖線 |
xlEdgeLeft | :左端の罫線 |
xlEdgeRight | :右端の罫線 |
xlEdgeTop | :上側の罫線 |
xlInsideHorizontal | :指定した範囲内のすべてのセルの水平罫線 |
xlInsideVertical | :指定した範囲内のすべてのセルの垂直罫線 |
Range("A1").Borders(xlEdgeRight).LineStyle = xlDash 'A1セルの下側に破線をつける'
【罫線の色を設定する】
セル下側に罫線を設定するにはBordersプロパティで指定する。
Range("A1").Borders.Color = RGB(0, 0, 255) 'A1セルの罫線の色を青に設定'
【罫線の太さを変更する】
罫線の太さを変更するにはWeightプロパティで指定する。
Rangeオブジェクト.Bordersオブジェクト.Weight = 値
※指定できる値
xlHairline | :細線(最も細い罫線) |
xlMedium | :普通 |
xlThick | :太線(最も太い罫線) |
xlThin | :極細 |
Range("A1").Borders(xlEdgeBottom).Weight = xlThick 'A1セルの下側に太線をつける'
【表示形式をカンマ区切りにする】
書式をカンマ区切りにするにはNumberFormatLocalプロパティを使う。
Rangeオブジェクト.NumberFormatLocal = 設定値
※指定できる値
# | :1桁の数字。指定した桁数未満の場合は表示されない。 |
0 | :1桁の数字。指定した桁数未満の場合でも表示される。 |
Range("A1").NumberFormatLocal = "\#,##0" 'A1セルに3桁までの金額が表示される。'
【表示形式を指定した日付にする】
書式を日付(yyyy/mm/dd)にする場合も、NumberFormatLocalプロパティを使う。
Rangeオブジェクト.NumberFormatLocal = 設定値
※指定できる値
yy | :西暦年(下2桁) |
yyyy | :西暦年(4桁) |
g | :元号(アルファベット) |
gg | :元号(先頭文字) |
ggg | :元号 |
e | :月(1~12) |
mmm | :月(英語簡略表記) |
mmmm | :月(英語表記) |
mmmmm | :月(英語表記の先頭文字) |
d | :日(1~31) |
dd | :日(01~31) |
ddd | :曜日(英語簡略表記) |
dddd | :曜日(日本語簡略表記) |
aaa | :曜日(日本語簡略表記) |
aaaa | :曜日(日本語表記) |
h | :時(0~23) |
hh | :時(00~23) |
m | :分(0~59) |
mm | :分(00~59) |
s | :秒(0~59) |
ss | :秒(00~59) |
Range("A1").NumberFormatLocal = "YYYY/MM/DD" 'A1セルにyyyy/mm/dd形式で日付を表示する。'
【セルの塗りつぶしの設定をする】
セルを塗りつぶすには、Interiorプロパティを使う。
Rangeオブジェクト.Interior.Color = RGB(0, 0, 255)
Rangeオブジェクト.Interior.Color = 色名
※指定できる色
rgbAqua | :水色 |
rgbBlack | :黒 |
rgbBlue | :青 |
rgbForestGreen | :フォレストグリーン |
rbgGreen | :緑色 |
rgbLime | :黄緑 |
rgbNavy | :ネイビー |
rgbRed | :赤 |
rgbWhite | :白 |
rgbYellow | :黄 |
Range("A1").Interior.Color = rgbBlue 'A1セルを青にする。'
【セルの背景色の設定をする】
セルの背景色の設定をするには、ThemeColorプロパティを使う。
また、TintAndShadeプロパティを使うことで基本色の割合を設定できる。
(正の値だと白、負の値だと黒)
Rangeオブジェクト.Interior.ThemeColor = 色名
Rangeオブジェクト.Interior.TintAndShade = 数値
※指定できる色
xlThemeColordark1 | :白色 |
xlThemeColorLight1 | :黒 |
xlThemeColorDark2 | :ベージュ |
xlThemeColorLight2 | :濃い青 |
xlThemeColorAccount1 | :青 |
xlThemeColorAccount2 | :赤 |
xlThemeColorAccount3 | :オリーブ |
xlThemeColorAccount4 | :紫 |
xlThemeColorAccount5 | :アクア |
xlThemeColorAccount6 | :オレンジ |
Range("A1").Interior.ThemeColor = xlThemeColorDark2 'A1セルの背景色をベージュ基調の色にする。'
Excelマクロ覚書 ~フォント編~
図書館で借りてきた某書籍の覚書です。
- 【フォントサイズを変更する】
- 【フォントファミリーを変更する】
- 【フォントの位置を変更する】
- 【複数のフォントを結合する】
- 【文字列を回転する】
- 【文字列を折り返して表示する】
- 【文字列を幅の長さに応じて縮小する】
- 【文字列を太字にする】
- 【文字列を斜体にする】
- 【文字列に下線を引く】
- 【文字列の色を変更する】
【フォントサイズを変更する】
フォントサイズを変更するにはFontメソッドのSizeプロパティを使う。
Rangeオブジェクト.Font.Size
Range("A1").Font.Size = 25 'A1セルのフォントサイズを25にする'
指定したセルのフォントサイズに合わせることもできる
Range("A1").Font.Size = Range("B1").Font.Size 'B1セルのフォントサイズをA1セルに適用する'
指定したセルのフォントサイズに乗算する場合
Range("A1").Font.Size = Range("B1").Font.Size * 2 'B1セルのフォントサイズを2倍にしてA1セルに適用する'
【フォントファミリーを変更する】
フォントの種類を変更するにはFontメソッドのNameプロパティを使う。
Rangeオブジェクト.Font.Name
Range("A1").Font.Name = "MS P明朝" 'A1セルのフォントファミリーをMS P明朝にする'
指定したセルのフォントサイズに合わせることもできる
Range("A1").Font.Size = Range("B1").Font.Size 'B1セルのフォントサイズをA1セルに適用する'
指定したセルのフォントサイズに乗算する場合
Range("A1").Font.Size = Range("B1").Font.Size * 2 'B1セルのフォントサイズを2倍にしてA1セルに適用する'
【フォントの位置を変更する】
フォントの縦位置を変更するにはRangeオブジェクトのVerticalAlignmentプロパティを使う。
Rangeオブジェクト.VerticalAlignment = フォント位置
※指定できる値
xlTop | :上詰め |
xlCenter | :中央揃え |
xlBottom | :下詰め |
xlJustify | :両端揃え |
xlDistributed | :均等割り付け |
Range("A1").VerticalAlignment = xlTop 'A1セルのフォント位置を上詰めにする'
フォントの横位置を変更するにはRangeオブジェクトのHorizontalAlignmentプロパティを使う。
Rangeオブジェクト.HorizontalAlignment = フォント位置
※指定できる値
xlGeneral | :標準 |
xlLeft | :左詰め |
xlCenter | :中央揃え |
xlRight | :右詰め |
xlFill | :繰り返し |
xlJustify | :両端揃え |
xlCenterzAcrossSelection | :均等割り付け |
Range("A1").HorizontalAlignment = xlRight 'A1セルを右詰めにする'
【複数のフォントを結合する】
フォントを結合するにはRangeオブジェクトのMergeメソッドを使う。
フォントの位置を変更する場合はHorizontalAlignmentを使う。
Rangeオブジェクト.Merge
Range("A1:C1").Merge 'A1~C1セルを結合する'
フォントの結合を解除するにはUnmergeメソッドを使う。
Rangeオブジェクト.UnMerge
Range("A1:C1").UnMerge 'A1~C1セルの結合を解除する'
【文字列を回転する】
文字列の角度を調整するにはOrientationプロパティを使う。
Rangeオブジェクト.Orientation = 角度
Range("A1").Orientation = 45 'A1セルにある文字列の角度を45度にする'
角度指定を解除するには0を指定する。
Range("A1").Orientation = 0 'A1セルの回転指定を解除する'
【文字列を折り返して表示する】
文字列を折り返して全体を表示するにはWrapTextプロパティを使う。
Rangeオブジェクト.WrapText = True / False
※指定できる値
True | :折り返す |
Fales | :折り返さない |
Range("A1").WrapText = True 'A1セルの文字列が枠に入りきらない場合は折り返す'
マクロを実行するたびにTrueとFalseを切り替える場合。
Range("A1").WrapText = Not Range("A1").WrapText 'マクロを実行するたびにTrueとFalseが交互に切り替わる'
【文字列を幅の長さに応じて縮小する】
文字列が幅に入りきらない場合、ShrinkToFitプロパティを使うことで幅に応じて文字サイズを決めることができる。
Rangeオブジェクト.ShrinkToFit = True / False
※指定できる値
True | :幅に入りきらない場合は文字サイズを縮小する |
Fales | :幅に入りきらなくても文字サイズを縮小しない |
Range("A1").ShrinkToFit = True 'A1セルの文字列が幅に入りきらない場合は縮小'
【文字列を太字にする】
文字列を太字にするには、Boldプロパティを使う。
Rangeオブジェクト.Bold = True / False
※指定できる値
True | :太字にする |
Fales | :太字設定を解除する |
Range("A1").Bold = True 'A1セルを太字にする'
【文字列を斜体にする】
文字列を斜体にするには、Italicプロパティを使う。
Rangeオブジェクト.Italic = True / False
※指定できる値
True | :斜体にする |
Fales | :斜体設定を解除する |
Range("A1").Italic = True 'A1セルを斜体にする'
【文字列に下線を引く】
文字列に下線を引くには、Underlineプロパティを使う。
Rangeオブジェクト.Underline = 下線の種類
※指定できる値
xlUnderlineStyleDouble | :太い二重下線 |
xlUnderlineStyleDoubleAccounting |
:細い二重下線 |
xlUnderlineStyleSingle |
:一重下線 |
xlUnderlineStyleNone |
:下線なし |
Range("A1").Underline = xlUnderlineStyleSingle 'A1セルの文字列に一重下線を引く'
【文字列の色を変更する】
文字列の色を変更するには、FontメソッドのColorプロパティを使う。
色はRGB関数で指定する。
Rangeオブジェクト.Font.Color = RGB(赤, 緑, 青)
Range("A1").Font.Color = RGB(255,255,255) 'A1セルの文字列の色を白にする'
指定したセルと同じ色にする場合
Range("A1").Font.Color = Range("B1").Font.Color 'A1セルの文字列の色をB1セルと同じにする'
Excelマクロ覚書 ~コピペ編~
図書館で借りてきた某書籍の覚書です。
【セルのデータをコピーする】
セルをコピーするにはCopyメソッドを使う。
Rangeオブジェクト.Copy
Range("B4").Copy 'B4セルをコピーする'
コピーしたセルを貼り付けするにはPasteメソッドを使う。
Worksheetオブジェクト.Paste
Range("A4:F10").Copy 'コピーしたセルの'
Range("H4").select '貼り付け先を選んで'
ActiveSheet.Paste 'ペースト実行'
別のワークシートに貼り付ける場合は、RangeオブジェクトのDestinationを指定する
Copyとの間は半角スペースで区切る。省略もできるが、なるべく指定したほうがいい?
左側にコピー元のシート、右側にコピー先のシートを指定する
Worksheetオブジェクト.Rangeオブジェクト.Copy Destination:= Worksheetsオブジェクト.Rangeオブジェクト
Worksheets("Sheet1").Range("A1:F12").Copy _ Destination:=Worksheets("Sheet2").Range("A1")
【セルのデータを移動する】
切り取ってからペーストするので、CutメソッドとPasteメソッドを使う。
Rangeオブジェクト.Cut
Range("A1:F12").Range("A1:F12").Copy '切り取ったセルの'
Range("H1").Select '貼り付け先を選んで'
ActiveSheet.Paste 'ペースト実行'
別のワークシートに貼り付ける場合も、Copyメソッドと同様
Worksheetオブジェクト.Rangeオブジェクト.Cut Destination:= Worksheetsオブジェクト.Rangeオブジェクト
Worksheets("Sheet1").Range("A1:F12").Cut _ Destination:=Worksheets("Sheet2").Range("A1")
【セルを削除する】
セルの値を削除するにはDeleteメソッドを使う。
引数にShiftを指定することで、指定した方向に移動できる
Shiftに指定できる設定値は、xlShiftToLeft(左方向)とxlShiftUp(上方向)のみ
Rangeオブジェクト.Delete Shift:= 隣接セルの移動方向
Range("F12").Delete Shift:=xlShiftToLeft 'F12セルを削除後、F13のセルをF12にずらす'
Range("B1:F12").Delete Shift:=xlShiftToLeft 'B1~F12セルを削除後、B13~F25のセルをB1~F12にずらす'
【セルを挿入する】
セルの値を挿入するにはInsertメソッドを使う。 引数にShiftを指定することで、指定した方向に移動できる Shiftに指定できる設定値は、xlShiftToRight(右方向)とxlShiftDown(下方向)のみ 移動後の書式はセル上側の書式が適用される。
Rangeオブジェクト.Insert Shift:= 隣接セルの移動方向
Range("F12").Insert Shift:=xlShiftToLeft 'F12セルに挿入後、既存のF12セルを右にずらす'
Range("F12").Value = "私は猫になりたいんだ!" 'F12セルに値を入力'
セル移動後の書式を変更するにはCopyOriginを使う。
※CopyOriginに指定できる設定値
- xlFormatFromLeftOrAbove(上、左側セルの書式)
- xlFormatFromRightOrBelow(右・下側セルの書式)
Rangeオブジェクト.Insert Shift:= 隣接セルの移動方向, CopyOrigin:= セル移動後の書式を適用する方向
Range("F1:H4").Insert Shift:=xlShiftDown, CopyOrigin:= x1FormatFromRightOrBelow 'F1~H4セルに値を挿入後、右・下側セルの書式を適用'
【セルの形式を指定してコピペする】
セルの形式を指定して貼り付けるにはPasteSpecialメソッドを使う。
引数にPasteを指定することで、貼り付け先セルの形式を指定できる。
Rangeオブジェクト.PasteSpecial Paste:= PasteSpecial 貼り付け先セルの形式
※Pasteに指定できる設定値
xlPasteFormats | :書式のみ |
xlPasteFormulas | :数式のみ |
xlPasteFormulasAndNumberFormats | :値のみ |
xlPasteValuesAndNumberFormats | :値と数値の書式 |
Range("A1:H10").Copy 'F1~H10セルをコピー'
Range("F12").PasteSpecial Paste:=xlPasteFormats 'F12セルを起点に、書式のみ貼り付け'
【値を算出して貼り付ける】
セルの値を算出して張り付けるにはPasteSpecialメソッドの引数Operaionを設定する。
Rangeオブジェクト.PasteSpecial Operaion:= 算出方法
※Operationに指定できる設定値
xlPasteSpecialOperationAdd | :加算 |
xlPasteSpecialOperationSubtract | :減算 |
xlPasteSpecialOperationDivide | :除算 |
xlPasteSpecialOperationMultiply | :除算 |
Range("A1").Value = 1.08 'A1セルに消費税を設定'
Range("A1").Copy 'A1セルをコピー'
Range("B1").PasteSpecial Paste:=xlPasteValues _
, Operation:= xlPasteSpecialOperationMultiply 'A2セルに消費税分を加える'