• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルの文字列操作:縦に繰り返す方法)

エクセルの文字列操作:縦に繰り返す方法

このQ&Aのポイント
  • エクセルでA、B、C列の文字列を縦に繰り返す方法を教えてください。
  • 繰り返しの条件が縦になる必要があるため、四苦八苦しています。
  • 最終的には繰り返した結果をCSVで書き出してバーコードとして印刷したいです。

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

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.3

マクロによる一例です。 (1)該当シートタブ上で右クリック→コードの表示→以下のコードを貼り付け→F5キーを押下 (2)A,B,C列をD列の空白が見つかるまでE列に展開します。 Sub sample() k = 1 For Each c In Range("D:D") If c.Value = "" Then Exit Sub wk = c.Offset(0, -3) & c.Offset(0, -2) & c.Offset(0, -1) For i = 1 To c Range("E1").Offset(k - 1).Value = wk k = k + 1 Next Next End Sub

metall
質問者

お礼

ご回答ありがとうございます。 このようなマクロを使う手段もあるのですね。私はプログラミング関連はさっぱりですので勉強になります。 上手く動きましたので、この手段をメインに作業していきたいと思います。 ありがとうございました。

その他の回答 (2)

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

 作業列を2行使用する方法です。  今仮に、 >A1セルが「a」B1セルが「b」、C1セルが「c」、D1セルの数字が「3」 >A2セルが「AA」B2セルが「BB」、C2セルが「CC」、D2セルの数字が「5」 と入力されているシートがSheet1であるとし、Sheet2のA列とB列を作業列として使用するものとします。  まず、Sheet2のA1セルに次の数式を入力して下さい。 =IF(ISNUMBER(Sheet1!$D1),SUM(Sheet1!$D$1:$D1),"")  次に、Sheet2のB1セルに次の数式を入力して下さい。 =IF(ROWS($A$1:$A1)>SUM(Sheet1!$D:$D),"",SUMPRODUCT((OFFSET($A$1,,,MATCH(65536,$A:$A))<ROWS($A$1:$A1))*(OFFSET(OFFSET($A$1,,,MATCH(65536,$A:$A)),1,)>=ROWS($A$1:$A1))*ROW(OFFSET($A$1,,,MATCH(65536,$A:$A))))+1)  次に、Sheet2のA1~B1の範囲をコピーして、同じ列の2行目以下に貼り付けて下さい。  次に、O1セルに次の数式を入力して下さい。 =IF(ISNUMBER(Sheet2!$C1),INDEX($A:$A,Sheet2!$C1)&INDEX($B:$B,Sheet2!$C1)&INDEX($C:$C,Sheet2!$C1),"")  次に、O1セルをコピーして、O2以下に貼り付けて下さい。  以上で、完了です。

metall
質問者

お礼

ご回答ありがとうございます。 実際に試してみたところ、上手くできませんでした。 >次に、Sheet2のA1~B1の範囲をコピーして、同じ列の2行目以下に貼り付けて下さい。 >次に、O1セルに次の数式を入力して下さい。 >=IF(ISNUMBER(Sheet2!$C1),INDEX($A:$A,Sheet2!$C1)&INDEX($B:$B,Sheet2!$C1)&INDEX($C:$C,Sheet2!$C1),"") >次に、O1セルをコピーして、O2以下に貼り付けて下さい。 ↑この箇所ですが、2行目以下とは、今回の例ですと8行目までになるのでしょうか? また、O1セルとは任意のセルの1行目という事ではないですよね? 別回答でマクロを使用した手段があるのですが、こちらの方法でも挑戦してみたいので、 もし宜しければ、ご教授の程、宜しくお願い致します。

noname#131542
noname#131542
回答No.1

エクセルでバーコード変換は聞いたことありませんが バーコードを読み込んだものを表示することは可能です そういう類ならアクセスでどうぞ アクセスならバーコードは設定一つで出来ます エクセルにしろアクセスにしろ 例題のような繰り返し処理回数が固定で、まったく同じ文字列なら マクロで処理は可能です

metall
質問者

お礼

ご回答ありがとうございます。 手段は多々あるようですので、色々チャレンジしてみます。 ありがとうございました。