• 締切済み

EXCEL 指定範囲内の空白セルに特定数だけ文字を入力するマクロ教えてください。 

マクロ初心者です。 指定範囲内の空白セルに特定数だけ文字を入力するマクロを考えていますが、まったくわかりません。どなたか教えていただけますか? 詳細内容 (1)下記のような空白セルを含む範囲内        A B C D       1  A君       2       3A君  B君       4  C君  (2)別セルでA君に1追加するとA君が表示上追加される        A B C D       1  A君  A君←どこでも空白セルならいい       2       3A君  B君       4  C君 

みんなの回答

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

元の範囲がA1:D4 カウントするデータの題目 F1:H1 ... A君 B君 C君など カウントが F2:H2 設定値が F3:H3 といったセル範囲なら Sub m()   Dim r1 As Range, r2 As Range   Dim r As Range, bFlag As Boolean   ' カウントをループする   For Each r1 In Range("F2:H2")     ' 設定値を取得     Set r2 = r1.Offset(1)     ' 設定値が違うならループ     Do While r1.Value <> r2.Value       ' forループを抜けたときのエラー判定用フラグ       bFlag = False       ' 元データの範囲をループ       For Each r In Range("A1:D4")         ' 最初に見つかったセルへ記入         If r.Value = "" Then           ' カウンタの上の行 F1:H1にデータがある           r.Value = r1.Offset(-1).Value           ' 記入したのでフラグをセット           bFlag = True           Exit For         End If       Next       ' フラグが立っていなかったらエラー       If bFlag = False Then         MsgBox "記入できるセルがありません"         Exit Sub       End If     Loop   Next End Sub # 字下げには全角スペースを使用しています

FUKUYAMA28
質問者

補足

ご回答ありがとうございます。お教えいただいた内容で試しているのですが、設定値というのは、どの様な値の事を言うのでしょうか?範囲、カウントと入力し、設定値がわからないため適当な数字を入れたのですが、全てA君となり最後に”記入できるセルがありません”と表示されてしまします。設定値の意味をお教えください。

  • sometime7
  • ベストアンサー率45% (18/40)
回答No.1

空白セルに数値を入力した後マクロを実行し数値を任意の文字列に置き換えると言うことですね?(1=A君 2=B君 3=C君 みたいな感じ?的はずしてるかも。。) マクロの記憶で置き換え動作を記憶させてみてはどうでしょうか? ツール⇒マクロ⇒新しいマクロの記憶(名前は適当に) で記憶開始にして(先にセルに数値入力しといてくださいね)、 置き換えしたいセル範囲を選択し、編集⇒検索と置換を実行し1=A君⇒実行 2=B君⇒実行 3=C君⇒実行 で置き換え終了し、 ツール⇒マクロ⇒マクロ記憶終了 で完了です。 後は数値を適当に入力しまくってツール⇒マクロ⇒マクロ実行 でさっきの記憶を実行すれば置き換わります。 どこまでご存知かわからないので手っ取り早い方法書きました。 ご参考までに。。。

FUKUYAMA28
質問者

補足

早速のご回答ありがとうございます。説明不足でした。申し訳ございません。もう少し詳細に言いますと (1)下記のセル範囲で  A  B  C  D 1   A君 2         C君 3A君 B君    C君 4   C君 B君 (2)下記の別カウンタがあります。 A君 B君 C君  2  2  3 (3)、(1)の表の文字列の個人ごとの数と(2)のカウンタの個人毎の数字は同じです。 (4)そこで(2)のカウンタを下記の様にA君に一つ追加した場合に A君 B君 C君  3  2  3 (5)表も下記の様に文字列を一つ追加させたいのです。  A  B  C  D 1   A君    A君←追加させるセルは空白のセルなら 2         C君 どこでもいいです。 3A君 B君    C君 4   C君 B君 マクロはマクロの記憶をさせること程度しか出来ない初心者です。 よろしくお願いします。        

関連するQ&A

  • Excelのマクロを使わず、数式内のセル指定範囲をダイナミックにすることはできますか?

    Excelで数式内に範囲を指定するときに、先頭と最後尾のセル番地を指定しますが、他のセルで指定した数値を指定したセル番地の行数に指定することはできますか? 例えば、以下のようなサンプルにおいて A B C D 1 10 2 4 2 32 3 42 4 20 5 17 6 =sum(A2:A4) C1番地に2、D1番地に4を入力すると自動的に A6番地でA2~A4の範囲を指定して足し算してくれるようなことをマクロを使わずに実現できるでしょうか?

  • マクロ 空白セルへの文字入力

    A列が空白となるまでB列のとこどころに数字が入力されていて空白のセルへ0を入力する。 というマクロがどうしてもできないのですが、ご教示お願いします。

  • マクロのセルの範囲指定

    お世話になります。マクロ初心者です。エクセルの業務でマクロを作成しようとしているのですが、マクロ実行で、セルの範囲が指定される方法はありますか?例えば シート名  開始  終了  Sheet1   A1  D10 を入力して、ボタンを押したらA1からD10までのセルが選択されることです。説明不足ですみません。宜しくお願いします。

  • 特定のセル範囲で4文字以上入力されているセルの数をカウントしたい

    特定のセル範囲で4文字以上入力されているセルの数をカウントしたいと思っています。 VBAで記述すれば簡単なことだと思いますが、これくらいなら関数でもできそうだと思い チャレンジしてみましたが挫折しました…。 関数の引数に「A1:C5」などという感じで範囲を指定する記述で できれば短くシンプルな記述を希望しています。 よろしくお願いします。

  • エクセルで印刷範囲を自動で指定し、印刷するマクロ

    エクセルの表の中から、ある特定の文字が入っている セルを探し、そのセルから「下に3、右に2」の範囲 (文字が入っているセルは含まない)を自動的に範囲 指定して印刷するマクロをつくりたいのですが、どうすればよいでしょうか? たとえば、「○」が入力されているセルが A2だとすればA3からC5を自動的に範囲指定して印刷 するようにしたいのです。 どうぞよろしくお願いします。

  • Excelマクロ 入力の有無を判定するマクロを組みたい

    はじめまして。 マクロの初心者です。 エクセルマクロを利用して、セルに何か入力(文字でも数値でも)がある場合の判定をしたいのですが、うまくいきません。 具体的には、 ・(A1セルが空白で)B1からC10セル(10個のセル)のいずれかのセルに何か入力された場合 → D1セルに"○"を出力。 ・(A1セルが空白で)B1からC10セル(10個のセル)のいずれかのセルに何も入力がない場合 → D1セルは"(空白)"。 ・但し、大前提として、A1セルに"×"が入力されている場合 → D1セルに"×"を出力。 (B1からC10セル(10個のセル)のいずれかのセルに何か入力されている場合でも、A1セルが"×"ならばD1セルは"×"とする) としたうえで、同様の判定を ・A11セルおよびB11からC20を判定しD11セルに結果を出力、 ・A21セルおよびB21からC30を判定しD21セルに結果を出力、 … と繰り返して、A100セルまで実行させたいと考えています。 (D1、D11、D21、D31、D41、D51、D61、D71、D81、D91の10個のセルに"○"、"×"、"(空白)"の結果を出力したいです) 過去の投稿や解説書などを参照にしているのですが、なにぶん本当に初心者のためうまくいきません、、、 どなたかお力添えをお願いします。

  • 空白までのデータを範囲指定する

    EXCEL VBAにて教えてもらいたい事があります。 空白までの行列を範囲指定したいのです。         A  B   C   D  1   1123 123  12  57 2    32 1 5 52 3 2 98 852 11 4 65 2 72 1 A列からD列の行が空白になるまでの範囲を指定する マクロを教えてほしいです。 A列の最終行の次の行にカーソルを合わせるマクロはわかるのですが 範囲を指定する方法がわかりません。 よろしくお願いいたします。 最終行の次の行にカーソルを合わせるマクロ Range("A1").End(xlDown).Select ActiveCell.Offset(rowOffset:=1).Activate Selection.Copy

  • Excel 2003 セルの中に特定の文字が入力されている場合に、その数をカウントする方法

    どなたか教えて下さい。 エクセルのセルに特定の文字が入力されている場合に、そのセルの数を返してくれるような関数の設定があれば教えて頂きたく思います。 例) A00001 A00002 A00003 B00006 C00004 D00009   ↓ A:3 B:1 C:1 D:1 このように返したいのですが…?

  • Excelのマクロにおいて、期間指定で印刷範囲の設定方法

    Excelのマクロにおいて、期間指定で印刷範囲の設定方法 Excelのマクロで分からない事がありましたので質問させて頂きます。 Excelで、特定の期間(例えば2010/7/1~2010/10/31)以外の日は 特定のセルを印刷しないよう設定する事は可能でしょうか。 例えば… A1セル TODAY関数 B1セル ああああ C1セル いいいい D1セル うううう とした場合、指定期間(例えば2010/7/1~2010/10/31)はA1~D1までを印刷範囲として、 指定期間以外はC1のみを印刷範囲から外したい、という事です。 指定期間過ぎたらセル削除…という方法では事情により駄目なのです。 無茶な事言っているかもしれませんが、可能な方法がありましたらご教授お願い致します。

  • 空白なら入力、入力されていたら削除のマクロ

    A1セルに、B1セルに入力した文字をコピーするマクロを作りたいです。 ただし、常にB1セルに入力した文字をコピーするのではなく、A1セルに何も 入力されていなかった時だけ文字をコピーして、逆に何か入力されていた時はそれを 認識して、A1セルを空白にするマクロです。マクロの記録でうまくいかなかったので、お知恵を貸していただければ幸いです。。 (例) A1セルは空白 B1セルに あいうえお とかかれているとする    マクロボタンを押すと、 A1セルにあいうえお と入力される    もう一度同じマクロボタンを押すと、A1セルが空白になる(あいうえおが削除される)    更にもう一度同じマクロボタンを押すとA1セルにあいうえお と入力・    これの繰り返しです。

専門家に質問してみよう