VBAで異なる統合数のセルに指定の数字を入力する方法

このQ&Aのポイント
  • エクセルVBA初心者の方が統合数が異なるセルに順番に数字を入力する作業を自動化したいと考えています。手動で3000まで入力するのは非常に厳しいため、VBAを使用して自動化できないか検討しています。しかし、参考になるサイトが見つからず、知識も乏しいため、ご指導いただける方がいらっしゃいましたら助かります。
  • 作業環境はWindows7とExcel2010です。現在行っている作業を画像で添付しました。お力添えいただける方がいらっしゃいましたら、よろしくお願いいたします。
回答を見る
  • ベストアンサー

VBAで統合数の違うセルに、指定の数字を入力する

エクセルVBA初心者です。 現在統合数が異なるセルの 上から順に「1」から「3000」まで数字を入力しなければならない作業が発生しております。 3000ともなると、手動での作業が非常に厳しい為、 VBAによる自動化ができないか検討しております。 様々なサイトで調べてはみたのですが、 参考になるサイトが見つからず、お恥ずかしい話ですが私の知識も乏しいため、 お分かりになる方がいらっしゃいましたら、 ご指導いただけると大変助かります。 作業環境は、 Windows7 Excel2010です。 現在手作業で行っている作業を画像で添付いたしますので、 お力添えいただける方がおりましたら、 よろしくお願いいたします。

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

  • ベストアンサー
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.2

速度は保証の限りではありませんが、offsetで送ると、 結合セルを一個ずつ進めてくれます。ご参考まで。 Sub test() Dim myCell As Range Dim i As Long Set myCell = ActiveSheet.Range("B1") i = 1 Do myCell.Value = i Set myCell = myCell.Offset(1, 0) i = i + 1 Loop While i <= 3000 End Sub

af_toybox
質問者

お礼

とても素晴らしいです。 速度も申し分なく、イメージ通りの結果を出すことができました。 初心者の私にに対し、とてもわかりやすいシンプルなVBAで、とても感謝しております。 大変ありがとうございました。

その他の回答 (2)

  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.3

ごく単純に。 Sub sample() Range("A1").select    ' 開始するセル番地 For i = 1 To 3000     ' 最小「1」、最大「3000」 ActiveCell = i ActiveCell.Offset(1, 0).Select Next End Sub 数字を入力するならこれだけでもできます。 結合する作業も同時に行うなら、もう少し考える必要があります。

af_toybox
質問者

お礼

早々のお返事ありがとうございます。 希望通りの動作を確認いたしました。 正直こんなに素早く動作するとは思っていませんでしたので、感動しております。 ご丁寧にありがとうございます。

noname#203218
noname#203218
回答No.1

マイクロソフロのサンプルVBAを一部修正したものです。ご参考まで。 A列5万行まで可能です。5万行を超える場合は修正下さい。 Sub test() Dim MyRange As Range Dim BeforeAddress As String Dim i As Integer i = 1 For Each MyRange In Range("A1:A50000") '結合セルかどうか判断 If MyRange.MergeCells Then '前のセルと同じ結合セルかどうか判断 If MyRange.MergeArea.Address <> BeforeAddress Then MyRange.MergeArea.Value = i i = i + 1 End If '結合セルのアドレスを取得 BeforeAddress = MyRange.MergeArea.Address Else MyRange.Value = i i = i + 1 End If If i > 3000 Then Exit Sub Next MyRange End Sub

af_toybox
質問者

お礼

試しに5万行にナンバリングしたのですが、 驚く程のスピードに感動しました。 処理内容もイメージ通りのものでしたので、 大変感謝しております。 今後は、徐々に勉強し、自分でも書けるように取り組みたいと思います。 ありがとうございました。

関連するQ&A

  • [VBA]統合セルに、隣にある数字の最大値を表示

    VBA初心者です。 現在業務にてエクセルを使用した計算表を作成しているのですが、 指定のテンプレートに沿って作成しなければならない為、 一部の作業が難航しております。 内容は、変則的に統合されたセルの横にある数字の最大値を、 統合セルに表示させるというものです。 ※詳細は添付画像をご参照ください。 関数などを用いて計算させようとしたのですが、セルが統合されているため、 結局手動で入力するのと時間に大差ないことが分かりました。 また、行数にすると1000行以上ある表を編集しなくてはなりませんので、 VBAによる作業を検討しております。 つきましては、大変恐縮ではありますが、どちらかお分かりになる方がおりましたら、 ご助力いただけると助かります。 作業環境は Windows7 Excel2010 です。 勉強不足で申し訳ありませんが、よろしくお願いいたしjます。

  • セルの統合

    Excel2003で セルA3、A4を統合 セルB3、B4を統合 セルC3、C4を統合 というふうにやって セルJ3、J4まで統合したいのですが 自動で統合させる方法はないでしょうか?? 教えてください。よろしくお願いいたします。

  • EXCELのセルに入力した数字より背景色の塗りつぶしを行いたいのですが

    EXCELのセルに入力した数字より背景色の塗りつぶしを行いたいのですがどうすればよいのでしょうか? 閲覧ありがとうございます。 今仕事の資料を作成しています。 かなりの初心者ですので、宜しくお願いします。 使用ソフトのバージョンは EXCEL 2003 SP3になります。 現在表を作成しており、行に数字を入れ、数字にあわせ背景色をつけたいと考えています。 ※列で数値をCountifにより集計し、1がいくつ、2がいくつ・・・・とカウントしています。 セルには1~15の数字を入れ、それぞれ数字に合わせ自動で背景色を塗りつぶすことを行いたいと考えています。 書式の条件付書式により色をつけることを考えましたが、3つの条件までしか作ることが出来ずに困っています。 おそらくVBAやマクロ等を使用しないといけないと思いますが、可能なのでしょうか? プログラミングの知識が無いので、ぜひご教授のほどよろしくお願いします。

  • エクセルのセルの統合について質問です。

    エクセルのセルを統合して、少し大きめの統合セルを 作成します。 この統合して作ったセルに、写真を貼り付けたいと 思います。 そこで、この統合セルの大きさに自動的に写真の 大きさを、合わせて貼り付けることは出来るでしょうか? 今は、写真を貼り付けた後、手作業で、大きさを 調整して、セルの上にこれも、手作業で移動させて、 貼り付けています。 統合セルの大きさに合わせて自動的に画像を貼り付ける 方法は、ないのでしょうか?

  • 特定のセルに数字を入力すると特定の文字を表記VBA

    (1)セルG9には「ドラム缶   缶」と表記されています。ここに数字のみを入力すると「ドラム缶  〇 缶(〇は先ほど入力した数字)を自動表記し、「ドラム缶 〇  缶」と表記された文字をデリートボタン等で消したら、再び「ドラム缶   缶」と自動表記するVBAはありますか? セルF9には、G9の「ドラム缶 〇  缶」の〇の数字に200を掛けて、「○○○L」と自動表記させたいのですが、どの様にVBAを書けば良いですか?G9が「ドラム缶   缶」と数字が表記されている時はF9も「   L」と空白表記させたいです。 (2)セルG11には「20L缶   缶」と表記されています。ここに数字のみを入力すると「20L缶  〇 缶(〇は先ほど入力した数字)を自動表記し、「20L缶 〇  缶」と表記された文字をデリートボタン等で消したら、再び「20L缶   缶」と自動表記するVBAはありますか? セルF11には、G11の「20L缶 〇  缶」の〇の数字と一緒の数字「○L」と自動表記させたいのですが、どの様にVBAを書けば良いですか?G11が「20L缶    缶」と数字が表記されていない時はF11も「   L」と空白表記させたいです。 (3)セルG29には「        L」と表記されています。ここに数字を入力すると「   〇     L(〇は先ほど入力した数字)を自動表記し、「    〇    L」と表記された文字をデリートボタン等で消したら、再び「        L」と自動表記するVBAはありますか? セルF29には、G29の「        L」と全く一緒に連動した文字(ここでは「        L」)を自動表記させたいのですが、VBAではどの様にすれば良いですか?

  • Excel2010で、あるセルの内容をVBAで

    Excel2010で、あるセルの内容(文字列)をVBAで.Formulaを使い別シートに移行すると、#NAME?が出ます。そのセルに対し手動でカーソルを入れEnterを打つと本来のデータが表示されるので、正しいはずなのですが、700以上あるので手間がかかってしまいます。 自動で本来のデータが表示される何か良い方法は有りますか。

  • Excelで文字と数字のセルを数字だけにするには・・・

    Excel2002で、一つのセルに文字と数字が混ざっている(kj256など)を貼り付けた場合に、自動的に数字だけにするにはどのような設定をすればよいのでしょうか? 使用したいのは、kw3364をコピー&ペーストしてきて、貼り付けた瞬間にセルの中が数字の3364になる、といった感じの内容です。 よろしくお願いします。

  • excel2007 セルの中の数字の頭に0を

    excel2007でセルに入力された 2124542 などの数字の頭に0を加える作業をしたいと思っています。 たくさんのセルがあるのでそれを全部ひとつひとつやっていたら 大変だと思いましたので いい方法がないか知ってる方がいましたらお願いします。

  • EXCELで統合したセルの高さ自動調整ができない

    EXCELで質問です。 統合したセルに対して、セルの高さの自動調整がききません。 なぜでしょう。 再現方法 1)セルに大幅にはみだすくらい文字を入力します。 2)下のセルと統合します。 3)折り返して全体を表示するをチェックします。 4)書式>行>自動調整をしても、2行分しか表示されず、3行目以降は手動でセルを広げないと見えません。 3行分セルを統合すると3行まで、4行だと4行分までしか表示されません。 仕様でしょうか。

  • セル内の数字を変更すると[塗りつぶし]の色が変わる

    Microsoft Excel 2010にて、セル内の数字を変更すると自動的に[塗りつぶし]の色を灰色にしたいのですが、何方かご存知の方おりましたら教えていただけないでしょうか。よろしくお願いいたします。

専門家に質問してみよう