- ベストアンサー
VBA 結合されているセルのオートフィルのやり方
- VBAを使用して結合されているセルのオートフィルを行いたい場合、以下のコードを使うことができます。具体的な処理内容は、指定したセルに入力された値を検索し、該当する行の結合されているセルにオートフィルを行います。
- まず、指定したセルの値を取得し、検索対象の行の結合されているセルを選択します。その後、選択したセルの一番上のセルを取得し、オートフィルの範囲を設定します。最後に、オートフィルを実行します。
- 上記のコードは、指定したセルの値が空である場合にのみオートフィルを行います。また、オートフィルの範囲は指定したセルから上方向に検索し、空でないセルまでとなります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
https://okwave.jp/qa/q10048172.html の続きですね。前質問を閉じないと規約違反になります。 https://project.okwave.jp/utility/prohibition/ 「締め切らずに同一、または関連する質問を投稿」 プログラムを見ましたが、何で For i = 1 To 10 があるのか、何をしたいのか判りません。 F1: 5 の時4行目までコピー、但しB4が埋まっていたら何もしないのであれば。 オートフィルを使う、使わない。両方用意しました。 Option Explicit ' Sub Macro1() Dim RSta As Long ' If Cells([F1] - 1, "B") = "" Then RSta = Cells([F1], "B").End(xlUp).Row Range("B" & RSta, "C" & RSta).AutoFill _ Range("B" & RSta, "C" & [F1] - 1), xlFillCopy End If End Sub ' Sub Macro2() Dim RSta As Long ' If Cells([F1] - 1, "B") = "" Then RSta = Cells([F1], "B").End(xlUp).Row Range("B" & RSta, "C" & [F1] - 1).Merge True Range("B" & RSta, "B" & [F1] - 1) = Cells(RSta, "B") End If End Sub
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17069)
珍奇な内容の(たまたま質問者の、この場面でのみ有効な)課題で、時間が掛かったが、余り力が入らない。 エクセルで、セル結合の利用は、最終レポートの段階(別コピーしたシートで行う)などに限り(見てくれをよくする)行い、データ処理段階では、できるだけ避けるべきようだ。 VBAでの処理にも。データベース的利用では知毎的。ピボットテーブルなどでも。 ーー データ例 下記は質問の文章から作ったツモリ。理解に時間が掛かったーー真意を誤解しているかも。 (特に質問文の中の「・・・」の使い方が引っかかった。) A列は連番か?本件と意味があるのか? B,C列は同行は結合されている、とする。 A列 B列・C列 F列 1 1000 5 <ーーF1セルは5 2 1100 3 4 5 ーー 結果 A列 B列=C列と結合されている。空白に見える。 C列=下記 1 1000 2 1100 3 1101 4 1102 5 1103 標準モジュールに コメント部分も見ておいてください。 Sub test01() n = Cells(1, "F") 'F1セルの値を取得、数字とする 本件では5 Range("B" & n & ":C" & n).Select 'B5:C5を選択 Selection.End(xlUp).Select 'ENDキー+上↑を操作 B2:C2を選択状態 MsgBox "AAA" Selection.AutoFill Destination:=Range("B2:C" & n), Type:=xlFillSeries 'B2:C2をB5:C5までオートフィル End Sub ーー 本質問での、F1セルの5に当たるデータは、どうするの(人間判断の手入力か?)。 VBAならもっと別の分野の勉強が、沢山あるだろうに。
お礼
すいません質問閉じ忘れていました。 実現できました。 何回も答えて頂きありがとうございます。