• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:マクロの意味について)

マクロの意味について

このQ&Aのポイント
  • マクロについての意味が理解できていないため、教えていただけないでしょうか。
  • マクロを使用する際の具体的な手順やコマンドが含まれています。
  • マクロを使用することで、Excelの操作を自動化することができます。

質問者が選んだベストアンサー

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.2

>応用が利かないので、少し教えてください。下記の意味を教えてもらえますか。 >tbl.Offset(4, 0).Resize(tbl.Rows.Count - 4, tbl.Columns.Count - 8).Select >Selection.Copy >tbl.Offset(4, 5).Resize(tbl.Rows.Count - 4, tbl.Columns.Count - 5).Select >Selection.Copy tbl.Offset(4, 0)  セル領域tblの左上コーナーから、行方向に4行下がったセル。列方向の移動はゼロ。  例えば、最初のセル領域tblがI1:X1000とすると、tbl.Offset(4, 0)=I5です。  左上コーナーは.Offset(0, 0)になるわけです。 .Resize  指定された範囲のサイズを変更します。Resize(行数,列数)のように使います。  この場合は行数=tbl.Rows.Count - 4       列数=tbl.Columns.Count - 8  なので、セル領域tblでOffset位置を基点に、上4行と列数を8列減らした範囲に変更しています .Select  Resizeで変更したセル領域を選択 .Offset(4, 5)の方も同様ですね。  最初のセル領域tblがI1:X1000なら、4回下がって、5回右に動いた位置から範囲を決めています。 VBE画面で、表示→オブジェクトブラウザで調べると、意味が理解できると思います。

noname#72697
質問者

お礼

よくわかりました。ありがとうございました。

その他の回答 (1)

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

日本語にしてみました。 ブックaaaをアクティブにする   Windows("aaa.XLS").Activate   Dim tbl, gyo, burank セルI4を選択   Range("i4").Select アクティブセル領域tblを定義。セルI4を含む空白行と空白列で囲まれた領域。多分連続的にデータが入力されているのでしょう   Set tbl = ActiveCell.CurrentRegion アクティブセル領域tblの一番上の行を除外したものをtblに再定義して選択。多分、表題を除いている   tbl.Offset(1, 0).Resize(tbl.Rows.Count - 1, tbl.Columns.Count).Select 止めている?   Stop アクティブセル領域tblをコピー   Selection.Copy ブックbbbをアクティブにする   Windows("bbb.XLS").Activate ブックbbbのシートcccを選択   Sheets("ccc").Select セルB2を選択   Range("B2").Select セルB2を左上にして、アクティブセル領域tblを値貼り付け   Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _   False, Transpose:=False   Application.CutCopyMode = False セルA2を選択   Range("A2").Select   Application.CutCopyMode = False セルA2に算式『=B2&C2&D2』をセット。B、C、D列を文字列結合しようとしている   ActiveCell.Formula = "=B2&C2&D2" 算式を登録したセルA2を再度選択   Range("A2").Select セルA2をコピー   Selection.Copy 下のDoLoopで貼り付けた行数をカウントしようとしている。先判定にすべきか  行カウンタを初期化   gyo = 0   Do    行カウンタを進める     gyo = gyo + 1    行カウンタの行のB列のデータを取り出し『burank』に保存     burank = Worksheets("ccc").Cells(gyo, 2).Text   取り出した『burank』が未登録(空白セル)になるまで続ける   Loop While burank <> "" 最終行が求まったので、A3から対応するA列の最終行まで選択する ここで最終行は1行余分に数えているので『-1』している   Range(Cells(3, 1), Cells(gyo - 1, 1)).Select コピーしてあったセルA2を貼り付け。これでB列のデータ分、算式『=B2&C2&D2』がセットされる   ActiveSheet.Paste   Application.CutCopyMode = False セルA2を選択   Range("A2").Select 要は、ブックaaaのデータ部分をブックbbbに貼り付けて、A列にB、C、D列の文字列結合をさせているのでしょう。メモ帳の中だけで書いています。実際に動かしていませんのでご承知おきください。

noname#72697
質問者

お礼

お忙しい所ありがとうございました。 参考になりました。またよろしくお願いします。

noname#72697
質問者

補足

応用が利かないので、少し教えてください。下記の意味を教えてもらえますか。 tbl.Offset(4, 0).Resize(tbl.Rows.Count - 4, tbl.Columns.Count - 8).Select Selection.Copy tbl.Offset(4, 5).Resize(tbl.Rows.Count - 4, tbl.Columns.Count - 5).Select Selection.Copy

関連するQ&A