行と列を入れ替えた表を新規シートに作るマクロ
3行マクロ 10回
表の行と列を入れ替える
作成した表を、後で縦と横を入れ替えた表に作りなおさなければならない時があります。
手作業では、面倒な作業を、マクロにすることで、一発で操作できるようになります。
(サンプルファイルは、こちらから 3行マクロ10回サンプルデータ)
行と列を入れ替えた表を新規シートに作成
マクロの記録からはじめる場合
形式を選択して貼り付けという機能を使ったマクロを作成しましょう。
ポイントは、記録をはじめる前に表全体を選択しておくこと。
これは、あとあといろいろなサイズの表でマクロを使う可能性があるため、特定の表を選択するという動作をマクロに記録しないためです。
また、列幅の貼り付けもやっておきましょう。
ポイントは、記録をはじめる前に表全体を選択しておくこと。
これは、あとあといろいろなサイズの表でマクロを使う可能性があるため、特定の表を選択するという動作をマクロに記録しないためです。
また、列幅の貼り付けもやっておきましょう。
マクロの記録で出来上がったコードです。
形式を選択して貼り付けダイアログにあったさまざまな設定項目も、一緒に含まれていますので、コードが長くなっています。
不要なコードは削除しましょう。
形式を選択して貼り付けダイアログにあったさまざまな設定項目も、一緒に含まれていますので、コードが長くなっています。
不要なコードは削除しましょう。
形式を選択して貼り付けは、PasteSpecialメソッド
「Paste」引数に何を貼り付けるかですが、xlPasteAll は全部、
「Operation」引数には、xlNone、 演算をしない。
「SkipBlanks」引数に「False」を設定して、空白セルを無視しない
(省略可能でデフォルトは、Falese)
「Transpose」引数に「True」を指定して、行列を入れ替えています。
必要な命令だけ残します。
「Paste」引数に何を貼り付けるかですが、xlPasteAll は全部、
「Operation」引数には、xlNone、 演算をしない。
「SkipBlanks」引数に「False」を設定して、空白セルを無視しない
(省略可能でデフォルトは、Falese)
「Transpose」引数に「True」を指定して、行列を入れ替えています。
必要な命令だけ残します。
次の行ですが、形式を選択して貼り付けで列幅を指定しています。
コードは、このようになりました。
Sub 行と列を入れ替えた表を新規シートに作成1() Selection.Copy Sheets.Add After:=ActiveSheet Selection.PasteSpecial Transpose:=True Selection.PasteSpecial Paste:=xlPasteColumnWidths End Sub
行と列を入れ替えた表を新規シートに作成するマクロを実行したところです。
「Paste」引数に設定可能な項目の一覧表です。
今日の講義は以上です。お疲れ様でした。