EXCEl2010のVBAでアルファベットの表示を繰り返し処理する方法

このQ&Aのポイント
  • EXCEl2010のVBAを使用して、シート1のA1とA2に入力された値に基づいてアルファベットを表示する繰り返し処理の方法を探しています。
  • アルファベットは文字コードを使用して変換することができます。シート1のA1で指定された回数だけアルファベットを表示し、シート1のA2で指定された値を文字コードに加算してアルファベットを変更します。
  • どなたか良い方法をご存知の方は教えてください。
回答を見る
  • ベストアンサー

EXCEL2010 VBA 文字コード

EXCEl2010のVBAで作成しています。 シート1のA1とA2に値を入力し、A1は行数を示しA2はアルファベットの数を表します。 値の分だけシート2のA1から下にアルファベットを表示していきます。 このアルファベットの表示を繰り返し処理でうまく作成したいと思っています。 アルファベットは文字コードがあり、そのコードの数に数字を加えたらAをBに変えるなどが できるという話を聞いたことがあるのですが。。。 どなたか良い方法があれば教えてください。 (例) シート1!A1:3 シート1!A2:4 の場合 シート2 A1:A A2:A A3:A A4:B A5:B A6:B A7:C A8:C A9:C A10:D A11:D A12:D

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

ワークシート関数では =CODE("A") という関数でAという文字のコードが65だと判ります。(小文字のaはコードが違うのも確認しておいて下さい) また =CHAR(65) という関数で,文字コード65の文字Aを計算できます。 マクロで使う関数は少しスペルが違いますが,次のようにします。 sub macro1()  dim a, b, i  a = worksheets("Sheet1").range("A1") '個数  b = worksheets("Sheet1").range("A2") '種類の数  for i = 0 To b - 1   worksheets("Sheet2").range("A1").resize(a, 1).offset(i * a) = chr(65 + i)  next i end sub

Not_Pro
質問者

お礼

回答ありがとうございます。 いつもいつも助かります。 無事にできました。

関連するQ&A

  • EXCEL2010 VBA 繰り返し処理

    EXCEL2010でVBAを使用してシートを作成しています。 シート1のA1にヘッダ数・A2に項目数を入力します。 VBAのコードを実行するとA1のヘッダ数が1ならシート2のA列には何も表示せず A2の項目数の分だけB列の14行目から数字を入力していきます。 (例)シート1   A1:1   A2:20  の場合はシート2のB14から20行下まで1~20の値を自動入力させる。   シート2   B14:1   B15:2     ↓   B33:20 シート1のA1が2以上の場合はシート2のA14から、シート1のA2の数値分アルファベットを表示させていきます。 (例)シート1   A1:2   A2:10  の場合シート2のA14:A23に「A」を表示させます。(シート1のA2の数分この場合は10行ずつ)               A24:A33に「B」を表示させます。               B列にはアルファベットごとに数字を1~表示させます。   B14:B23 1~10   B24:B33  1~10 シート1のA1が2なのでA・Bを表示 A1が3だとA・B・C A1が10だとA・B・C・D・E・F・G・H・I・JがA2の数字で区切りながら表示される。 このようなコードを書きたいのですが、どなたかご教示お願いします。

  • EXCEL2010 VBA 複数の条件のグラフ

    EXCEL2010のVBAでグラフを作成するコードを作成しています。 そのグラフでは指定した値で系列の数が変わります。 初期設定シートで指定値1と2を確認して指定値1が系列の数、指定値2がデータ範囲となります。 データ範囲はB列のB1から指定値2の数だけ下に増えます。 Sheet1にグラフを新規作成します。 (例) 指定値(A1):1の時 指定値(A2):20 グラフに表示される系列:(B1:B20) (例2) 指定値(A1):2の時 指定値(A2):20 グラフに表示される系列:(B1:B20)と(B21:B40) 説明が分かり辛いかもしれませんがよろしくお願いします。

  • EXCEL2000:上書きするVBAのコードを教えてください。

    EXCEL2000のマクロを使用して以下のようなことをやりたいと考えています。 VBAに記載するコードを教えていただけますでしょうか。 ●シート構成 1.データシート A列:各データを識別するコード(3桁で000、001等) B列:氏名 C列:年齢 D列:性別 2.入力シート A列:各データを識別するコード(3桁で000、001等) B列:氏名 C列:年齢 ●やりたいこと 1.「入力シート」に識別コードをふり、データを入力しています。 2.そのデータとは別に、「データシート」にもデータを入力しています。 3.「データシート」に存在するデータに関しては、入力シート上のA列:識別コードと同じデータのB列:氏名とC列:年齢を、「入力シート」上のそれぞれの列に上書きします。 4.「データシート」に存在しないデータに関しては、「入力シート」上に存在するデータをそのまま残します。 マクロを作動させると、上記一連の作業が完了するようにできればと考えています。 まとめますと、「データシート」上にデータが存在すればそれを「入力シート」上に表示し、存在しなければ「入力シート」のデータをそのまま表示するというような仕組みにできればと考えています。 ご回答よろしくお願い致します。

  • VBAのコードを教えて下さい。

    VBA初心者です。 色々検索してもどれを使えば良いか分かりません。宜しくお願い致します。 シート1に他シート(約100枚)選択範囲(”A3:D4”,"E3:K12")のデータ(A3:D4には顧客名、E3:K12には契約内容。契約内容は9行ありますが空白もあり、月によって入力されている値が変化します。3行になったり7行になったりと。9行は固定で範囲内で行数が変化します。 シート1に全ての顧客名と契約内容を一覧で表示させる方法を教えて頂きたいです。 どうか宜しくお願い致します。 尚、シート1には他のコードも記入されております。そのコードの下に直接書いても大丈夫なのでしょうか?

  • EXCEL2010 VBA グラフの作成

    EXCEL2010のVBAで自動でグラフを作成するコードを作成したいと思っています。 シート1のA1:A10にデータが入っていて、ボタンを押すとコードが実行されて A1:A5までが系列1 A6:A10までが系列2 として表示される折れ線グラフを作成しようと思っています。 さらに作成したグラフは新規にシートを作成して作成したシートに表示させたいと思います。 このような処理を行いたいのですがVBAを始めたばかりなのでグラフの作成くらいしかまだ 分かっていません。 どなたかこの処理を実現できる良い方法を教えてください。よろしくお願いします。

  • vbaでシートより100より大きい値を削除するコードを教えてください

    vba初心者です。 値の羅列のシートでセルの値が100より大きいセルはのある行は削除したい時どのようなコードを書けばわからず苦慮してます。 例として下記のようなシートの場合どうかきますでしょうか? A B C D E F ---------------------------------------- 1 20090101 20 30 95 40 ---------------------------------------- 2 20090102 25 35 105 45 ---------------------------------------- 3 20090103 40 50 110 50

  • VBAのコードをお聞きしたいです。

    VBAのコードをお聞きしたいです。 いま、ある周期で角度をとっていて、グラフが傾いているものを周期毎に傾きを導出してグラフの基準を横一直線にしようとしています。A列に時間(A2から)が1~3000なんぼまでがはいっていて、B列に時間に対応する値(グラフが傾いている元のデータ)、C列に周期毎のデータ数、D列に周期毎の傾きが入力されています。 元データ(B列)の値に傾き(D列)と時間(A列)を掛けた値を引いていく、というのを周期のデータ数分(C列)繰り返す。1周期終わったらまた時間1から2周期目で同じように繰り返してというコードを教えてほしいです。 A B C D Time deg count slope 1 -0.41 475 -0.43 2 -0.82 169 -0.814 3 -1.23 198 -0.54 4 -1.49 190 -0.81 5 -1.9 201 -0.35 6 -2.31 189 -0.89 ~ ~ ~ ~ 3000 -1605.88 というようにExcelにあります。 具体的な計算を書くと (1)E2=B2-D2*A2 / E3=B3-$D$2*A3 / E4=B4-$D$2*A4 ・・これをcount分つまり475回繰り返す (2)E476=B476-$B$476-D3*A2 / E477=B477-$B$476-D3*A3 / E478=B478-$B$476-D3*A4 ・・これを169回繰り返す (3)E674=B674-$B$674-D4*A2 / E675=B675-$B$674-D4*A3 ・・ といったように1周期ごとにtimeを初期化してかけられるようにして、またcount数で区切りをいれるというようなことがでえきるコードを教えてほしいです。 わかりにくい部分があればご指摘ください。補足説明させていただきます。 よろしくお願いします。

  • VBAのコードについての質問

    いつもお世話になっております。 以下の操作(添付ファイル)に対するVBAのコードを教えてください。 (1)シート1(添付ファイル左):B列に新聞名、C列に対象記事数 (2)マクロを実行することにより、シート2(添付ファイル左)の表が作成される。 質問したい事は、A新聞の記事数が3、B新聞の記事数が2なので、シート2にA新聞の行が3行作成され、その下に、B新聞の行が2行・・・・記事数が0の場合は行は作成されない。 のような事をやいりたいのですが、コードが分かりません。 どなたかよろしくご教授ください。

  • エクセルのデータの表を1行ごとに用意したレイアウトで1ページづつ印刷し

    エクセルのデータの表を1行ごとに用意したレイアウトで1ページづつ印刷したい。 シート1の A列に商品名(数字とアルファベットの組み合わせ) B列に数字4桁 C列に数字4桁 D列に数字とアルファベットの組み合わせで3ケタ が入っていて5,000行のデータが有ります。 シート2のB1にシート1のA1の値 シート2のB2にシート1のB1の値 シート2のB3にシート1のC1の値 シート2のB4にシート1のD1の値 シート2のC1にシート2のB1~B4の値から作成されるバーコードを表示 (エクセルにアドオンしたアプリケーションで生成されます) シート2のB5にシート1のA2の値 シート2のB6にシート1のB2の値 シート2のB7にシート1のC2の値 シート2のB8にシート1のD2の値 シート2のC5にシート2のB5~B8の値から作成されるバーコードを表示 改ページをシート2のA4で1ページになるようにして (よって2ページ目の終わりはA8) シート1の5,000行分をシート2に同じように 貼り付ける一番簡単な方法は有りますか?

  • Excel2007でVBAでも関数でも構いません。

    Excel2007でVBAでも関数でも構いません。以下のように表示させる方法がお分かりの方、ご指導願います。 A1(●) B1() A2(●) B2() A3() B3() A4(●) B4() A5() B5() A6() B6(●) A7() B7() A8() B8(●) A9() B9() A10(●) B10() を・・・ C1(●) D1() C2() D2() C3() D3() C4() D4() C5() D5() C6() D6(●) C7() D7() C8() D8() C9() D9() C10(●) D10() に。 言葉では上手く説明できませんが、宜しくお願い致します。

専門家に質問してみよう