01-VBA

Excel VBA の「オブジェクト活用」(Part.2)【セル活用編】

お知らせ

howahowablogのVBA記事が電子書籍にて販売となりました。

目標

Excelのオブジェクトへの操作を体験して動きを把握し利用できる
セルの操作方法を確認して動きを把握できる

オブジェクトの概要と操作

オブジェクトの概要についてはこちらを参考にしてください。

初心者のためのExcelVBAのオブジェクトExcelVBAのオブジェクトについて説明しています...

Excelブックの準備

Excelのブックを準備して「Sheet6」まで追加しておきます。

Sheet6は新規シートとして利用しています。

セルの操作

サンプルプロシージャ1

Sub cellsObjectOpe()
'##################################################
'#  セルの操作                                                                                                 #
'##################################################
'ワークシートの選択
Worksheets("Sheet6").Select

'セルをひとつ選択する方法(2種類紹介)
'---------------------------------------------------------------------------------------------
Range("C3").Select
Cells(5, 5).Select
'---------------------------------------------------------------------------------------------

'セルを複数選択する方法(2種類紹介)
'---------------------------------------------------------------------------------------------
Range("B3:F3").Select
Range("B6, C4, E7, G3:G8").Select
'---------------------------------------------------------------------------------------------

'セルをアクティブにするする方法(2種類紹介)
'---------------------------------------------------------------------------------------------
Range("A1").Activate
Cells(3, 3).Activate
'---------------------------------------------------------------------------------------------

'セルに値を入力する方法(2種類紹介)
'---------------------------------------------------------------------------------------------
Range("A1").Value = "あいうえお"
Range("A2").Value = 12345
'---------------------------------------------------------------------------------------------

'セルに表示形式を設定を設定する方法
'日本語でExcelを利用するのであればNumberFormatLocalプロパティ
'NumberFormatプロパティというプロパティもあるが、英語表記になるので利用が複雑
'---------------------------------------------------------------------------------------------
Range("A3").NumberFormatLocal = "#,###;[赤]-#,###"
Range("A3").Value = -123456789

Cells(4, 1).NumberFormatLocal = "\#,###;[赤]-\#,###"
Cells(4, 1).Value = 99999999

Range("A5").NumberFormatLocal = "@""支店"""
Range("A5").Value = "東京"

Range("A6").NumberFormatLocal = "yyyy年mm月dd日(aaa曜日)"
Range("A6").Value = "2022/12/08"

Range("A7").NumberFormatLocal = "#.###"
Range("A7").Value = 1234.56789
'---------------------------------------------------------------------------------------------

'セルにフォントや色などの書式を設定
'---------------------------------------------------------------------------------------------
Range("A8").Value = "東京"
Range("A8").Font.Name = "メイリオ"

Range("A9").Value = "東京"
Range("A9").Font.FontStyle = "Bold"

'セルのフォントカラーの設定
Range("A10").Value = "東京"
Range("A10").Font.Color = RGB(255, 0, 0)

Range("A11").Value = "東京"
Range("A11").Font.Color = vbBlue

Range("A12").Value = "東京"
Range("A12").Font.ColorIndex = 3

'セルの打ち消し線の設定
Range("A13").Value = "東京"
Range("A13").Font.Strikethrough = True

'セルのフォントサイズの設定
Range("A14").Value = "東京"
Range("A14").Font.Size = 16

'セルのフォントを標準に設定
Range("A15").Value = "東京"
Range("A15").Font.Size = 16
Range("A15").Font.Size = Application.StandardFontSize
Range("A15").Font.Name = "メイリオ"
Range("A15").Font.Name = Application.StandardFont
'---------------------------------------------------------------------------------------------

'設定した書式や値のクリア方法
'---------------------------------------------------------------------------------------------
'セルの書式のクリア
Range("A1:A5").ClearContents

'セルの値のクリア
Range("A6:A10").ClearFormats

'セルの全ての設定(書式や値)のクリア
Range("A11:A15").Clear
'---------------------------------------------------------------------------------------------

'アクティブセルの移動(Offset)
'---------------------------------------------------------------------------------------------
ActiveCell.Offset(1, 0).Select
ActiveCell.Offset(0, 1).Select
ActiveCell.Offset(-1, 0).Select
ActiveCell.Offset(0, -1).Select
ActiveCell.Offset(0, -2).Select
'---------------------------------------------------------------------------------------------

'アクティブセルの移動(End)
'---------------------------------------------------------------------------------------------
ActiveCell.End(xlDown).Select
ActiveCell.End(xlToRight).Select
ActiveCell.End(xlToLeft).Select
ActiveCell.End(xlUp).Select
'---------------------------------------------------------------------------------------------

'表(連続セル)の選択
'---------------------------------------------------------------------------------------------
Range("A6").CurrentRegion.Select
'---------------------------------------------------------------------------------------------

'表の選択範囲のサイズ変更1
'A6からのセレクションの行数を取得して変数へ代入
'---------------------------------------------------------------------------------------------
Dim tableRow As Integer
tableRow = Selection.Rows.Count
'---------------------------------------------------------------------------------------------

'A6からひとつ下のセルを取得して選択範囲を変更
'Excelでは表のひとつ目がフィールド名であることが多くこの選択範囲の変更はよく行う処理
'---------------------------------------------------------------------------------------------
ActiveCell.Offset(1, 0).Resize(tableRow - 1, 1).Select
'---------------------------------------------------------------------------------------------

'セルのコピー
'---------------------------------------------------------------------------------------------
Selection.Copy
'---------------------------------------------------------------------------------------------

'コピーデータの貼り付け(引数は三種類)
'---------------------------------------------------------------------------------------------
Range("B7").Select
Selection.PasteSpecial (xlPasteAll)
'---------------------------------------------------------------------------------------------

'コピーモードの解除
'---------------------------------------------------------------------------------------------
Application.CutCopyMode = False
'---------------------------------------------------------------------------------------------

'表の選択範囲のサイズ変更2
'A6からのセレクションの列数を取得して変数へ代入
'---------------------------------------------------------------------------------------------
Range("A6").CurrentRegion.Select
Dim tableColumns As Integer
tableColumns = Selection.Columns.Count
ActiveCell.Offset(1, 0).Resize(tableRow - 1, tableColumns).Select
'---------------------------------------------------------------------------------------------

End Sub

ステップモードで動作を確認

実行結果

セル幅の自動調整を行っていないのでセル内が「#######」と表示されています。

今回は以上となります。

howahowablogのVBA記事が電子書籍にて販売となりました。

初心者も実践で通用!「VBA・VBS」おすすめ書籍5選 | 現役エンジニア&プログラミングスクール講師「VBA・VBS」初心者の方が実践業務の中でそれらを活用しt活躍できるために必要な知識を習得できる書籍を紹介しています。ページの下部には「おすすめのITスクール情報」「おすすめ求人サイト」について情報を掲載中。...

ブックマークのすすめ

「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。

「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】について解説している記事です。削除方法も掲載しています。...
【パソコン選び】失敗しないための重要ポイント | 現役エンジニア&プログラミングスクール講師【パソコン選び】失敗しないための重要ポイントについての記事です。パソコンのタイプと購入時に検討すべき点・家電量販店で見かけるCPUの見方・購入者が必要とするメモリ容量・HDDとSSDについて・ディスプレイの種類・バッテリーの持ち時間や保証・Officeソフト・ウィルス対策ソフトについて書いています。...
RELATED POST
01-VBA

Excel VBA の「オブジェクト活用」(Part.1)【ワークシートと行列の活用編】

2022年12月14日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site