• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:選択した行のみマクロを使いたい)

選択した行のみマクロを使いたい

このQ&Aのポイント
  • 以前、こちらのサイトで表を展開するマクロを教えていただきました。そのマクロをシート全体ではなく、任意の行や任意のセルにだけに使えるようにしたいです。
  • Sub 展開() Dim nLast As Long Dim vAdata, i, j Dim vData nLast = Cells(Rows.Count, 1).End(xlUp).Row '行を追加削除する時は下から上が基本 For i = nLast To 1 Step -1 vAdata = Cells(i, 1) 'A列が空白ではなく、B列が空白の場合、B列以降を上と同じにする If (vAdata <> '') And (Cells(i, 2) = '') And (i > 1) Then Rows(i) = Rows(Cells(i, 2).End(xlUp).Row).Value Cells(i, 1) = vAdata End If If vAdata = '' Then 'A列の値が空白なら削除 Rows(i).Delete Shift:=xlUp Else 'A列の最後に「,」が有る場合は取り除く If Right(vAdata, 1) = ',' Then vAdata = Left(vAdata, Len(vAdata) - 1) End If vData = Split(vAdata, ',') 'A列の値がカンマで区切られていた場合 If UBound(vData) > 0 Then '対象行をコピーして区切られていた数-1だけ下に挿入 Rows(i).Copy Rows(i & ':' & i + UBound(vData) - 1).Insert Shift:=xlDown 'A列の値を区切られていた値に書き換える For j = 0 To UBound(vData) Cells(i + j, 1) = vData(j) Next j End If End If Next i End Sub というマクロを教えて頂きました。これをどのようにすればいいでしょうか?ご教授お願いします。
  • マクロ「展開()」を使用して表を展開したいが、シート全体ではなく任意の行や任意のセルにだけ適用したいです。マクロのコードは提供されましたが、詳細な使用方法について教えてください。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

「任意」とは,具体的にどういう具合にエクセルに指示したい(マクロがアナタのしたいことを理解できるやり方で)のですか? 例: 任意のセル範囲をヒトカタマリ選んで実行する。 変更前: For i = nLast To 1 Step -1 変更後: for i = selection.areas(1).row + selection.areas(1).rows.count -1 to selection.areas(1).row step -1

aaaabesi
質問者

お礼

回答ありがとうございます。 私の言った任意とは、おっしゃられた 「任意のセル範囲をヒトカタマリ選んで実行する。」 または、 「行番号をクリック、ドラッグして選択実行する。」 ということでした。 説明足らずで申し訳ないです。 ありがとうございました。