• ベストアンサー

マクロを使って最終行を取得して、範囲内の空白セルに

マクロを使って最終行を取得して、範囲内の空白セルに指定の文字列を表示させたいです。 お世話になります。 要件としてはタイトルの通りです。 Excel2013を利用しています。 A列を参照して最終行を取得し、 B列の1~最終行までの空白セルに対して「未入力」という文字列を入力したいです。 この場合、考え方はいろいろあるのでしょうが どのようにコードを組めば良いでしょうか? 自分では、まったく書けていないというのが正直なところです。 そこで御手数ですが、ご協力をお願いいたします。

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

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

当方xl2010です。数式で空白にしている様なケースには対応できません。何も入力していないセルが対象です。 短いコードですので、解説はご容赦下さい。 Sub test() Dim sh As Worksheet Dim targetRange As Range, myArea As Range Set sh = ActiveSheet With sh Set targetRange = .Range(.Range("A1"), .Range("A" & .Rows.Count).End(xlUp)).Offset(, 1).SpecialCells(xlCellTypeBlanks) End With For Each myArea In targetRange.Areas myArea.Value = "未入力" Next myArea End Sub

その他の回答 (1)

回答No.2

関連するQ&A

  • エクセルで文字最終行の空白セルへ移動

    エクセル2000です。 1000行内で間にとびとび(順不同)に空白セル、他は文字有りです。 (1000行目は文字あり) シートが10個あり、各シートともばらばら(ウィンドー枠固定位置)ですが、ウィンドー枠固定内の行に「最終行へ移動」のボタンを設け、いずれの行からも、最終文字入力の次の行空白セル(AからZ列のいずれか)へ移動したいです。 方法がありますでしょうか? VBAの場合、素人につきVBAへの入力方法等も一緒にお願いします。またVBAの場合、ソフトを立ち上げたら直ぐに実行できるようにしたいです。(立ち上がり時のマクロ警告はあり) よろしくお願いいたします。

  • 空白行を取得し、その次の行から2行ずつセルを結合するVBAコードについて

    例えばA列の空白行を取得し、 その次の行から2列ずつ結合し、 次の文字が入力されている手前まで連続でそれを続ける VBAコードはどのように記述したらよろしいでしょうか?

  • 関数による空白行を除き範囲を選択するマクロ

    添付ファイルのシートが同じファイル内にある別シートの値を参照の上、元シートの入力がない場合は、if関数により空白表示する様にしてあります。(関数自体は1万行くらいまで入力すみです。) このシートの空白表示以外のセル(A6:i22)までを選択するマクロを組みたいのですが普通のrange(A6:i6).End(xlDown).Rowを使うと空白表示行を含めた関数のある最終行を選択してしまいます。 サンプルの(A6:i22)をうまく選択するマクロを教えてください。

  • マクロにて空白のセルを一括して消去でなく削除したい

    空白のセルを一括して、空白セルについた色も含めてマクロで全て削除したい。 現在のデータ(仕様)について 1.Sheet2に列ごとにセルに色をつけ、データもあるとします。 2.A列10行・B列6行・C;列18行というように、列によってデータの入った範囲が違います。 3.どの行も途中に空白セルはなく、詰めたデータです。 以上です マクロで一括処理したいと思いますが、このようなことができるコードを教えて頂けませんか。よろしくお願いします。

  • エクセル・マクロで最終行を表示することについて

    エクセル・マクロで最終行を表示することについて C列の最終行を表示する場合、以下のマクロで表示できます。 今回はC列に C1=A1&B1 C2=A2&B2  ↓ という式が入力されている場合について質問します。 A列とB列が空白の場合、C列には0が表示されます。 したがって、下記のマクロだとこの0の行が最終行となります。 私の希望はこのC列の0は空白とみなし、0以外の値や文字が入力されている最終行を表示することです。 どのような工夫をすれば可能でしょうか? ご指導よろしくお願いします。 Sub 最終行表示() maxrow = Range("c65536").End(xlUp).Row MsgBox maxrow End Sub

  • 【Excel2003】空白セルが存在する行以外をCSV形式で出力するマクロ

    Excel2003にて作成した表に対して、 マクロを実行させて、CSVファイルを作成したいと思います。 具体的には、図のように、 文字列1 文字列2 文字列3 文字列4 文字列5 空白セル 文字列6 文字列7 文字列8 と入力してあるセルに対して、 「三列目に空白セルが存在する行以外」をCSVに出力したいのです。 出力結果をエディタで開くと、図のように、 文字列1,文字列2,文字列3 文字列6,文字列7,文字列8 となります。 このマクロの作成方法について、ご存知の方おられましたら、 出来ればソースをご提示お願いできませんでしょうか? よろしくお願い致します。

  • セル内文字を切取りその行範囲の列の空白セルに貼付

    B列3行目から添付のようにセル内にカンマを含む文字がありカンマで区切った文字ごとに切り取り矢印右のように同B列の次の空白行に順に貼り付けたく、その際カンマは削除したいです。また等間隔の名前の行がある中で枠内の空白に文字を張付けたく等間隔行数枠が多くてできればVBAコードがお分かりなる方宜しくお願いします。 環境はwindows7 office2013です。

  • エクセルVBAで最終行取得ができない

    エクセルVBAでたとえばC列にどこまでデータが入力されているかを調べるとき、通常は r = Cells(Rows.Count, "C").End(xlUp).Row などでできます。 しかし添付画像のような入力フォームが出来上がっており、かつC列に最初から何らか(画像では〒マーク)の入力がされているので、そこに回答者が途中まで入力された場合、これでは最終行は取得できません。 逆に上からEnd(xlDown)でやろうとしても、途中に空白セルがあってお手上げです。 余分な〒マークを元データから削除してしまいたいのですがそれでは入力されているところのマークまで消えてしまいます。 このようなファイルが何百もあり、それを1枚のシートにまとめようとしているのですが、この最終行取得でつまずいてしまいました。 どのような方法があるでしょうか? 画像はエクセル2013ですが、実際にマクロを動かすのは2010です。

  • VBA 最終行列の取得(空白混み)

    VBA 最終行列の取得(空白混み) 例えば以下のような場合正しくカウントするにはどの様にしたら良いでしょうか □→空白セル ■→データあり □ABCDEFGH 1□□□□□□□□ 2■■■■■■■■ 3■■■■■■■■ 4■■■■■■■■ 5□□□□□□□□ 6■■■■■■■■ 期待する戻り値 maxRow→6 maxColumn→8 行は最終行から特定可能ですが その方法だと列は1か0を返してくると思います。 最大値を求める手法はどんな物が考えられるでしょうか

  • エクセルで1行目が空白の場合、列を削除したい

    こんにちは!質問をお願いします。 エクセルで表を作成していますが、1行目が空白のセルがある場合に、その列を削除したいのですが、VBAでどのようなコードにすればよいでしょうか? ※上記のD列を削除し左詰めにしたい。(空白セルはAからBBまでの間で、特定の位置以降で発生します。) ※ちなみに1行目には、=N というようにほかのセルを参照し、文字の入力があれば表示するようにしています。 初心者につき、うまく説明できていないかもしれませんが、よろしくお願いいたします。

専門家に質問してみよう