ある列に複数のデータがある場合、その一番上の右隣のセルに数式などを入力後、そのセルの右下の小さい四角をダブルクリックすると、左の列のデータある一番下までオートフィルされますよね。
これのマクロを組みたいのですが、単純に出来ません。
普通通りマクロの記録をすると、実際に入力されていたセル番号までのマクロとなってしまい、データを追加した場合意味が無くなります。
具体的に説明すると、
A1からA10までそれぞれデータがある場合、
B1に数式を入力後、オートフィルでB10までコピー。
これをマクロで組もうとすると、B10までのフィルが組まれてしまい、A11~A20までデータを追加後マクロを実行してもB10までのフィルしか実行されません。
「左の列のデータがあるところまで」というマクロは組めないのでしょうか。
No.6
- 回答日時:
#2 の私のコードは、A1~Aのデータのあるところまでの範囲を、B1の式を反映させたい、というコンセプトに対して、左の列で範囲を取ってから、その範囲自体を右に移すというロジックです。
例えば、実際にVBAのコードを書いていく場合は、
Set myRange =Range("A1", Range("A65536").End(xlUp))
としておけば、それを1つの長さ(領域の範囲)として、
myRange.Offset(,i)
で、列の移動を、For ~To .. Next で、そのまま中身を換えずに使い回しすることも可能なのです。
もしも、A1 ~ A列の最後尾(例 A10) の、B列までの範囲(A1:B10)を取りたい場合は、
Range("A1", Range("A65536").End(xlUp).Offset(,1))
ですね。一応、ご参考までに。
No.5
- 回答日時:
ja7awuさんへ
ja7awuさんを始め数人の方の回答は必ず眺めるようにしているのですが、No4.でちょと気になる発言がありましたので一言。
>ちょっと類似コードをUPする意図は、解りません。
>当方に、ポイントは一切必要ありませんので、他の方へ差し上げてください。
こういうのは読む方としてはあまり愉快なものではありません。特にja7awuさんの回答を楽しみしている当方などにとっては。
今回の場合はちゃんと別案が提示されてるので別にどうのこうのという問題でもないような気もしますが。
もしそれを言うなら、参考URLの問題で、他の回答と全く同じ回答をされてますが(しかも他の回答より拙い、また別案もない)、その意図をお尋ねしたくなります。(^^;;;
それから、何にもならないポイントなんか誰も欲しくはないでしょう。(^^;;;;
ja7awuさんほどの方がこれくらいのことで、と今回はちょと吃驚しましたので一言書いてみました。
これからも目から鱗の回答を期待しています。
参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=1406981
No.4
- 回答日時:
#1 ですが、類似のコードがレスされていますので、shibiseiさんの混乱をさけるため
補足いたします。
説明文の表現が まずかったところもあったようですが・・・
Range("B1").AutoFill Destination:=Range("B1", Range("A65536").End(xlUp).Offset(, 1))
のコードについて、オートフィルする範囲の先頭は、計算式が入力されているB1ですから、
ゴードの左と同じで構いません。 別にA1をオフセットする必要は、ありません。
それで、オートフィルする範囲の最終については、
>「左の列のデータがあるところまで」というマクロは組めないのでしょうか。
という質問ですので、その「左の列のデータ最終」は、A65536でCtrl+↑ した時のセルの右隣
ですので、その部分のコードが、Range("A65536").End(xlUp).Offset(, 1) となっています。
ちょっと類似コードをUPする意図は、解りません。
当方に、ポイントは一切必要ありませんので、他の方へ差し上げてください。
No.3
- 回答日時:
No.1,2の方とは視点を変えてみました。
最終行を変数で取得し,cellでb1のセルから最終行のセルまでフィルハンドルをドラッグさせてみました。
お試しください。
Sub Macro1()
ActiveCell.SpecialCells(xlLastCell).Select
lasty = ActiveCell.Row 'lastyは変数
Range("b1").Select
Selection.AutoFill Destination:=Range(Cells(1, 2), Cells(lasty, 2)), Type:=xlFillDefault
End Sub
ありがとうございました。
確かに私の質問内容でのマクロは組めました。
ただ私のマクロに対する理解が乏しいため、他のセルでの適用がうまくできませんでした。
Range("b1").Select
のB1の部分を修正するだけでは駄目なのでしょうか。
#1,2の方の回答で目的は果たせましたので、今後勉強したいと思います。
No.2
- 回答日時:
Wendy02 です。
あまり評価を受けないかもしれませんが、
Sub TEST()
Range("B1").AutoFill Range("A1", Range("A65536").End(xlUp)).Offset(, 1)
End Sub
たぶん、こういうことでしょうね。
ただ、あまり、こういう AutoFill 自体は必要ないかもしれませんね。VBAのコードらしい書き方ですと、こんな書き方になるかと思います。
Sub TEST2()
With Range("A1", Range("A65536").End(xlUp)).Offset(, 1)
.Formula = Range("B1").Formula
End With
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
【お題】大変な警告
【大喜利】「今このパソコンは大変危険な状態です」という警告メッセージを無視してパソコンを開いたら、こんなことが起こった
-
おすすめの美術館・博物館、教えてください!
美術館・博物館が大好きです。みなさんのおすすめをぜひお聞きしたいです。
-
自分独自の健康法はある?
こうしていると調子がいい!みたいな自分独自の健康法、こだわりはありますか?
-
コーピングについて教えてください
皆さんはストレスを感じたとき、どのような方法や手段、テクニックで対処していますか?
-
【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
【お題】追い込まれた犯人が咄嗟に言った一言とは?
-
エクセルVBAでのオートフィル
Excel(エクセル)
-
Excelでカーソルの右下をダブルクリックする操作のキーボードショートカット
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・ことしの初夢、何だった?
- ・【お題】大変な警告
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・【お題】逆襲の桃太郎
- ・自分独自の健康法はある?
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelで隣のセルと同じ内容に列...
-
Excel関数:「0」を除いた標準...
-
Excel関数で、範囲内の最後のセ...
-
エクセルの日付書式を一発置換...
-
SUMIFで数値が入力されているセ...
-
【エクセル】区切り位置で分割...
-
エクセル、正数のみの集計[(負...
-
「JANコード」と「日付」で販売...
-
Excelで複数列かつ複数行分の一...
-
エクセル日付 文字列の関数がエ...
-
エクセルで何種類のデータがあ...
-
ピボットテーブル 0個の行を...
-
VLOOKUP関数で複数のセルが該当...
-
Excel:合計が一番上になる形で...
-
値の入っているセルのうち、一...
-
エクセルの最小値抽出方法について
-
EXCEL VBA 空白行を含んだ範囲選択
-
エクセル 正解率
-
エクセル2003で重複するデータ...
-
correl関数の範囲指定
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelで隣のセルと同じ内容に列...
-
【エクセル】区切り位置で分割...
-
更新前と更新後の差分をVBAを使...
-
Excel関数:「0」を除いた標準...
-
Excel関数で、範囲内の最後のセ...
-
SUMIFで数値が入力されているセ...
-
ピボットテーブル 0個の行を...
-
エクセル、正数のみの集計[(負...
-
値の入っているセルのうち、一...
-
エクセルで何種類のデータがあ...
-
Excelのマクロで行を間引きたい
-
エクセル 8ケタの数字から日数...
-
エクセルに入力された日付「S40...
-
【Excel】歯抜けデータの集約
-
correl関数の範囲指定
-
Excelで、72列のデータがありま...
-
エクセル日付 文字列の関数がエ...
-
エクセル2000で〇×の並び替えを...
-
SUMIFとCOUNTIFの違いについて
-
Excelで複数列かつ複数行分の一...
おすすめ情報