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