01-VBA

Excel VBA の「オブジェクト活用」(Part.1)【ワークシートと行列の活用編】| 現役エンジニア&プログラミングスクール講師

目標

Excelのオブジェクトへの操作を体験して動きを把握し利用できる
ワークシートと行列の操作を確認して動きを把握できる

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

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

初心者のためのExcelVBAのオブジェクト | 現役エンジニア&プログラミングスクール講師ExcelVBAのオブジェクトについて説明しています...

Excelブックの準備

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

Sheet5に次の内容を記述しています。

ワークシートの操作

サンプルプロシージャ1

Sub wsObjectOpe()
'##################################################
'#  ワークシートの操作                                                                                     #
'##################################################

'ワークシートの選択
'---------------------------------------------------------------------------------------------
Worksheets("Sheet5").Select
'---------------------------------------------------------------------------------------------

'ワークシートの複数選択
'---------------------------------------------------------------------------------------------
Worksheets(Array("Sheet1", "Sheet3", "Sheet5")).Select
'---------------------------------------------------------------------------------------------

'シートをアクティブにする
'---------------------------------------------------------------------------------------------
Worksheets("Sheet6").Activate
'---------------------------------------------------------------------------------------------

'ワークシートのコピー
'---------------------------------------------------------------------------------------------
Worksheets("Sheet5").Select
'CopyメソッドでSheet5を、左から6番目のシートのafter(後ろ)にコピー
Worksheets("Sheet5").Copy after:=Worksheets(6)
'---------------------------------------------------------------------------------------------

'ワークシートの名前変更
'---------------------------------------------------------------------------------------------
ActiveSheet.Name = "シート7"
ActiveSheet.Name = "Sheet7"
'---------------------------------------------------------------------------------------------

'ワークシートの移動
'---------------------------------------------------------------------------------------------
'MoveメソッドでSheet7を、左から5番目のシートのafter(後ろ)に移動
Worksheets("Sheet7").Move after:=Worksheets(5)
'---------------------------------------------------------------------------------------------

'ワークシートの保護
'---------------------------------------------------------------------------------------------
'セルに何かを入力すると警告のダイアログボックスがでます。
ActiveSheet.Protect "1234"
'---------------------------------------------------------------------------------------------

'ワークシートの保護解除
'---------------------------------------------------------------------------------------------
ActiveSheet.Unprotect "1234"
'---------------------------------------------------------------------------------------------

End Sub

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

実行結果

シートの行列の操作

サンプルプロシージャ2

Sub rowColumnsObjectOpe()
'##################################################
'#  行列の操作                                                                                                 #
'##################################################

'シートの行を取得
---------------------------------------------------------------------------------------------
Rows("3:5").Select

'指定した範囲の中からRowsで指定した行数番目の行を取得
'次の場合セルA1からD10のセレクションの中で3行目の行を取得→A3からC3
---------------------------------------------------------------------------------------------
Range("A1:C10").Rows(3).Select
---------------------------------------------------------------------------------------------

'シートの列を取得
---------------------------------------------------------------------------------------------
Columns("C:G").Select
---------------------------------------------------------------------------------------------

'指定した範囲の中からColumnsで指定した列数番目の列を取得
'次の場合セルC1からG10のセレクションの中で4列目の列を取得→F1からF10
---------------------------------------------------------------------------------------------
Range("C1:G10").Columns(4).Select
---------------------------------------------------------------------------------------------

'行や列の幅調整
'行や列の幅を入力の長さに合わせて自動で調整
---------------------------------------------------------------------------------------------
Columns("A:B").AutoFit
---------------------------------------------------------------------------------------------

'行列の表示と非表示
---------------------------------------------------------------------------------------------
'行列の表示
Columns("B").Hidden = True
'行列の非表示
Columns("B").Hidden = False
---------------------------------------------------------------------------------------------

'行列の挿入と削除と選択した列のコピーのための準備
Dim i As Integer
For i = 0 To 6
    If i = 0 Then
    Cells(1, 4).Value = "ID"
    Else
    Cells(i + 1, 4).Value = i
    End If
Next i


'行列の挿入と削除
'---------------------------------------------------------------------------------------------
'行列の挿入
Columns(4).Insert '「1」は「"A"」、「2」は「"B"」、「4」は「"D"」
'行列の削除
Columns("D").Delete
'---------------------------------------------------------------------------------------------

'D1の内容を列ごとコピー
Range("D1").EntireColumn.Copy
Worksheets("sheet7").Select
'シート6でコピーしたD列を挿入して貼り付け
Columns(1).Insert
'シート6のコピーモードを解除
Application.CutCopyMode = False
'A列の幅の自動調整
Columns("A:J").AutoFit

End Sub

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

「サンプルプロシージャ1」の実行が終わってから「サンプルプロシージャ2」の実行を行います。(Sheet7が存在している状態)

実行結果

今回は以上となります。

初心者も実践で通用!「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.5)【論理演算子】| 現役エンジニア&プログラミングスクール講師

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

ExcelVBAのEndプロパティ(2)| 現役エンジニア&プログラミングスクール講師

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

印刷機能番外|Excel VBA (Part.3)【サブルーチン】編 | 現役エンジニア&プログラミングスクール講師

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

ExcelVBAの「Range & Valueプロパティ」| 現役エンジニア&プログラミングスクール講師

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

制御構文|Excel VBA (Part.6)【For Next】ネスト編(前編)| 現役エンジニア&プログラミングスクール講師

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

クラスの利用方法|Excel VBA (Part.2) | 現役エンジニア&プログラミングスクール講師

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