• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBA特定セルの条件で同じ個数ずつ文字入力)

Excel VBAで特定条件のセルに同じ個数ずつ文字を入力する方法

このQ&Aのポイント
  • Excel VBAを使って、特定の条件に基づいてセルに同じ個数ずつ文字を入力する方法を教えてください。行数は約700行で、64行ごとにひとかたまりのデータがあります。B列には空白がありますが、C1の数値を元にB列に一定のステップで数値を入力したいです。
  • 初心者ですので、サンプルコードを教えていただけると助かります。どなたか、Excel VBAで特定条件のセルに同じ個数ずつ文字を入力する方法を教えてください。
  • お願いします。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

No.3です! >C1の数値を元に を見逃していました。 ↓のコードに変更してください。 Sub Sample() Dim i As Long, cnt As Long For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row Step 64 Cells(i, "B").Resize(64, 1) = cnt * Range("C1") cnt = cnt + 1 Next i End Sub 何度もごめんなさいね。m(_ _)m

AKI2480
質問者

お礼

素早く回答頂きありがとうございます。 非常にうまくいきました。 VBAの書籍等を読んでみてもよく分からず、質問しましたが まさかこんな早くに解決できるとは思いませんでした。 とても勉強になりました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんにちは! すでに回答は出ていますので、参考程度で・・・ Sub Sample() Dim i As Long, cnt As Long For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row Step 64 Cells(i, 2).Resize(64, 1) = cnt * 0.5 cnt = cnt + 1 Next i End Sub こんな感じではどうでしょうか?m(_ _)m

全文を見る
すると、全ての回答が全文表示されます。
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

 一部変更して以下の様なVBAでも同じ事が出来ます。 Sub Macro2() Dim lr As Long Dim i As Long If WorksheetFunction.Count(Columns("A:A")) > 0 Then lr = WorksheetFunction.Match(9E+307, Columns("A:A")) If TypeName(Range("C1").Value) = "Double" Then For i = 1 To lr Range("B" & i).Value = Int((i - 1) / 64) * Range("C1").Value Next i End If End If End Sub

AKI2480
質問者

お礼

お礼が遅くなり失礼しました。朝早くにありがとうございました。 教えて頂いた方法、こちらもうまくいきました。 VBAの書籍等を読んでみてもよく分からず、質問しましたが まさかこんな早くに解決できるとは思いませんでした。 お二方ともベストアンサーにしたいところですが、初心者ゆえより シンプルなコードの方が理解しやすかったため申し訳ありません。 いろいろなやり方があるんだと思い、とても勉強になりました。

全文を見る
すると、全ての回答が全文表示されます。
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.1

 まず、    A   B   C 1  011       0.5 2  012 3  013 4 と入力されているシートを開いてから、次のマクロを実行して下さい。 Sub Macro1() Dim lr As Long Dim i As Long If WorksheetFunction.Count(Columns("A:A")) > 0 Then lr = WorksheetFunction.Match(9E+307, Columns("A:A")) If WorksheetFunction.IsNumber(Range("C1").Value) Then For i = 1 To lr Range("B" & i).Value = Int((i - 1) / 64) * Range("C1").Value Next i End If End If End Sub

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 一つのセルに特定の文字が入ると隣のセルに条件に合った文字を入力したい

    列Aと列Bに特定の条件を入力します。 列Cに列Aに入力した行の文字を入力規則のリストで呼び出すと、列Dに列Aと同じ行に入っている列Bの文字を自動で入力するようにしたいのですが、どのようにしたらいいでしょうか? IF関数で条件分岐させようと思ったのですが列AもBも随時追加されていくのでこの方法が使えませんでした。

  • エクセルで入力済みのセルのみ見つけて・・

    エクセルで入力済みのセルだけを見つけ出して、 指定した場所に並べる作業をマクロで1発で出来るようにしたいのですが、その方法を教えてください。 シートが37シートあります。(sheetA1~sheetA12,sheetB1~sheetB12,sheetC1~sheetC12,sheet37) それぞれセルC5からC20まで数値が入っていますが、 最終行はC20とは限りません。(sheet37はまとめるためのシートで空白) C15が最終行の場合もあれば、C18が最終行の場合もあります。 各シートそれぞれ最終行が違います。(列は同じですスタートもC5です) 各シートのC列の入力済みのセルの数値をsheet37のB1セルから順番に縦に並べたいのです。 A,B,Cのシート順にC列に入力された数値を縦に並べます。 空白は無しで詰めて並べます。 これを1回の作業でできるマクロを教えてください。 それから入力済みの最終行を見つけ出すマクロの部分を表示して頂けるとありがたいです。 宜しくお願いします。

  • VBA 検索したセルに入力

    ExcelのVBAを使用して データの入力されたファイルに行列から検索したセルに数値を入力したいのです。 例えば、名前(行)と、日付(列) 2つの条件で、セルを検索し、該当するセルに、データ(数字とか)を 入力したいのです ------------------------------------  6/1 6/2 6/3 6/4 ・・・ a b c ・ ・ ------------------------------------ 例えば、A5に名前、B5に日付、データエリアがB10:Z20の場合 =INDEX(B10:Z20,MATCH(A5,A10:A20,0),MATCH(B5,B9:Z9,0)) で、該当するセルを探すことはできたのですが、 このセルに、データを入力したいときは、 ROWやCOLUMNで、行番号、列番号を取り出して Cellsで、入力すればいいのかな?と考えていますが もっと簡単にできるのでしょうか? (FIND関数は、使ったことがなく、どうなんだろう?と) それでいいよ とか、こっちの方が簡単 とかあれば、教えてください 

  • エクセルVBAについてお尋ね致します。数式が入力されたセルを異なるセル

    エクセルVBAについてお尋ね致します。数式が入力されたセルを異なるセルの条件によって「値」のみ残す方法を模索しております。 使用する列および行の例 列=A、B  行=5~10、15~20、25~30(A列、B列共通) 上記対象セルの内訳 A列(参照セル)=数値 ※空欄の場合もあります B列(変更セル)=数式(Aセル数値 * ○○%) ※B1セルの例:=IF(A1="","",A1*10%) のような数式が記入されております。 (例) Private Sub CommandButton1_Click() ’参照セルの指定 ("A5:A10","A15:A20","A25:A30") のようなコード*** ※現在はAセルの範囲としておりますが、後に変更の可能性を有しますので範囲指定が可能な形式を望みます。 ’変更セルの指定 セル指定のコード*** ※現在はBセルとしておりますが、これも後に変更の可能性を有しますのでA・B・Cのような入力(もしくはA=1、B=2、C=3)による指定可能な形式を望みます。 ’参照セル(Aセル)に数値が入力されている場合、数式から得られた変更セル(Bセル)の値を”値のみ”で残す。 実行コード*** ※参照セル(Aセル)が空欄の場合は変更を望まないので、変更セル(Bセル)は何も致しません。(数式のまま残す) End Sub このようなマクロを望んでおります。 イメージとしては数値がAセルに入力されていた際に同じ行のBセルにおいて右クリックコマンド内〔コピー〕 → 〔形式を選択して貼り付け〕 → 〔値〕の貼り付けを行うことをご想像下さい。 列や行の変更が予想されるので変更が可能なことを望んでおりますが、結果が伴えば他の体裁は気に致しません。 お手数ですがご教授宜しくお願い致します。 以上

  • 関数中にセルに入力した値を反映させて計算を行いたい

    こんにちは Excelを用いた計算を行っているのですが 自分の知識では出来なかったために皆様の知恵を借りたいと思っています Excelで単純な足し算を行いたいのですが とあるセルに入力した値によって計算範囲を変更したものを作りたいと考えています 仮にA行1列からA行20列まで各セルに1,23…20と順番に1つの数字が各セルに入力されていたとします この時, B行1列のセルに5という数字が入力されていたら C行1列にA行1列数字とA行5列の数字の和が入力される (イメージとしたら結果として1+5より6が出力される) B行1列のセルに10という数字が入力されていたら C行1列にA行1列数字とA行10列の数字の和が入力される (イメージとしたら結果として1+10より11が出力される) ような関数を作りたいと考えています 自身の甘い考えで B行1列のセルに5という数字が入力されていたら C行1列にA行1列数字とA行5列の数字の和が入力されるのは C行1列に=A1+A(B1)と入力したら出来るのではないかと考えていたのですが どうもできないみたいです なにか方法等浮かぶ方がいらしましたら回答をお願いします

  • Excel 条件に従いセル移動するには

    よろしくお願いいたします。 A列には入力したくない行に"a"が入力してあるとします。 B列に上の行から数値を入力していくのですが、数値を入力してEnterを押すと次のA列に"a"が入力されていない行のB列セルに移動するVBAを教えてください。

  • エクセル2000 同じ文字が入力されている個数を集計する

    A列には1~47の数字が200行まで入力されているものとします。 1 a c f e d 2 b a e d c 2 c d d f b 2 a f c a c ・ ・ ・ 47 d e d a b これときa~fが入力されている個数を次のように表にしたいと思いますが、関数でできますでしょうか。    a b c d e f 1   1 0 1 1 1 1 2   3 2 4 3 1 2

  • Excelセルに条件付きの日付を入力したい

    B列5行目の日付を入力したときD列5行目の数字とその上の行にある数字が一致した右隣E列と日付の差が5日以上経過していればC列5行に"ー"を差が5日未満であればB列の日付に5日を足した日付を順々に入力したいのですがどなたか関数の解る方よろしくお願いします。 因みに環境はoffice2013です。

  • マクロ VBA入力

    シート1  A    B   C     1 コード コード 金額     2 01 シート2  A    B   C   D   E     1 コード 名前 コード 名前 金額     2 01    あ  02   い  20     3 01    あ  03   う  30 シート1とシート2があります。シート1のA2に入力されたコードがシート2のA列に入力されていたら、その行のC列のコードをシート1のB2に反映し、E列の金額をシート1のC2に反映する。シート1のA2のコードは、シート2のA列に複数あるため、この作業を繰り返す。 シート1 A  B   C  1 コード コード 金額   2 01   02   20  3 01   03   30とできるようにするにはどうすればいいでしょうか?分かりにくい文章で申し訳ありません。関数では無理なのでVBAの入力しかないかと考えていますが、VBAは全くの初心者で困っています。どなたかご回答宜しくお願いいたします。   

  • 入力がない場合に特定のセルに色付けをしたい

    初めに説明ベタで申し訳ありません。   A  B  C 1 2 10 100  3 4 20 200 上記のような、エクセルシートを作成しています。 Aに数値を入力し、後にBにも数値を入力します。 空白の列も出てきます。 Aに入力があるのに、Bに入力がない場合、同じ列のCのセルを色付けしたいです。 ただ、Aに入力がない列にはなにも色付けをしたくありません。 どのような関数を使用したらよろしいでしょうか? お知恵をお貸し下さい。