• ベストアンサー

ExcelVBA:アルファベットの文字を簡単に出力する方法

ExcelVBAで、数字のように簡単にアルファベットを順番通りに出力する方法はないでしょうか? 今は下のように、一度変数にアルファベットを代入してから出力するようにしているのですが、もっと簡単な方法はないでしょうか? 用途は例えば、「Range("A1")」のようにセルを指定したい場合などに使用します。 For a= 0 To 25 Select Case a Case 0:英字(a)="A" Case 1:英字(a)="B" Case 2:英字(a)="C" ~~~ Next a 回答よろしくお願いします。

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

  • ベストアンサー
  • kokorone
  • ベストアンサー率38% (417/1093)
回答No.2

For a= 0 To 25 英字(a)=chr(a+65) Next a でいかがでしょうか?

miya_HN
質問者

お礼

「Chr」を使えばアルファベットの文字が出るんですね。 大変参考になりました。 ありがとうございました。

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

質問の仕方がおかしいから、回答者が戸惑う。 列を選択してそのセルで何かをしたいときは For j=1 to 10 Cells(2,j)=・・・(右辺に来る場合もあるが) Next j でよいと思う。 もう少し例を突っ込んで挙げないと >、「Range("A1")」のようにセルを指定したい だけでは判りにくい。 ーー 初心者のうちは、一般的に 我流の For a= 0 To 25 Select Case a Case 0:英字(a)="A" Case 1:英字(a)="B" Case 2:英字(a)="C" なんて例を挙げずに、やりたいことを書いて、虚心に、良いコードは無いか、回答者に書いてもらうほうが良いと常常質問を見ていて私は思う。却って回答者をミスリードする。

miya_HN
質問者

お礼

>なんて例を挙げずに、やりたいことを書いて、虚心に、良いコードは無いか、回答者に書いてもらうほうが良いと常常質問を見ていて私は思う。 なるほど。そうですか。できるだけそうするように心がけます。 ありがとうございました。

noname#140971
noname#140971
回答No.3

かなり、ヒネタ回答です・・・。 Private Sub CommandButton1_Click()   Dim I As Integer   Dim S      S = Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z")   For I = 0 To 25     Me.Cells(I + 1, 1) = S(I)   Next I End Sub

miya_HN
質問者

お礼

う~ん。ちょっと見たことないコードで分かりません。 ありがとうございました。

  • pbforce
  • ベストアンサー率22% (379/1719)
回答No.1

セルを指定したいのなら Cells(Row,Column) で良いのでは?

miya_HN
質問者

お礼

なるほど。セルを指定したい場合は「Cells(Row,Column)」を使えばいいわけですね。 ありがとうございました。

関連するQ&A

  • ExcelVBA 挿入貼り付けについて

    ExcelVBA勉強中の者です 変数にA1セルを指定し、別のセルへA1の値を挿入したいのですが上手くいきません。 Dim A1Cell As Range Set A1Cell = Range("A1") ↑Msgbox(A1Cell)にてA1セルの値を出力したので変数の宣言は出来ていると思います。     ActiveCell.Resize(1, 5).Select    Selection.Copy Range(A1Cell).Selection.Insert Shift:=xlDown         ↑ここでの変数の指定が間違っていると思われます Application.CutCopyMode = False かなり調べたつもりですが、自力では解決できずどなたか御助力お願い致します。

  • excelvbaについてご教授ください。

    いつもお世話になっております。 excelvbaの変数設定について、早速質問です。 A1を選択中だとして、 変数1 = Cells(Selection.Row, 1).Value は、(現在選択中の行,1列目)のセルデータを変数1に代入している。 変数2 = Cells(Selection.Row, 4).Value は、(現在選択中の行,4列目)のセルデータを変数2に代入している。 ということでそれぞれ間違いないでしょうか? 上記が正しいとして、 変数3 = Range("A11:A24 ").Find(What:=変数1, LookAt:=xlPart).Cells(変数2, 1).Row は、A11:A24から、変数1に該当するセルの行を変数3に代入しているということでしょうか? 特に、Cells(変数2, 1)の部分がよくわからないのですが、これ単体で見るとA4ですが、追加してもしなくても、結局変数3は変数1に該当する行なので、追加する必要があるのでしょうか? 的を得ていない質問をしていましたら申し訳ございません。

  • ExcelVBAで変数を用いた範囲指定について

    お世話になります。 ExcelVBAで困っていますので、アドバイスをお願いします。 A5:A10とD5:D10までといったように離れたセルへ Rangeを用いて範囲指定を行いたいのですが、 その際、行を示す数字に変数を用いたいと考えています。 この場合、どういう指定をしたら宜しいでしょうか? またRangeではなく他の方法もありましたら、 是非、ご提案願います。 どうぞよろしくお願いします。

  • ExcelVBAでセルの番地を変数として扱いたいですが

    ExcelVBAでセルの番地を変数として扱いたいですが 例えばaという変数に『Range(Cells(2, 5), Cells(2, 8))』を入れたとします。 このセル番地は複数を指定していると思うのですが、 このセル番地すべてを一個下にずらす、つまりCells(1,0)をプラスしたいんですが、 どうしたら良いのでしょうか? a + Cells(1,0)ではダメでした。

  • ExcelVBA:文字列の操作

    ExcelVBA初心者なんですが、 セル「A1」に「AL563 CO1.1」のようなデータがあったとします。これをスペースの前の部分だけ抽出し、「AL563」にしてさらに、「AL-563」という形で別のセルに出力したいのですがどのようにプログラムを組めばいいでしょうか?「AL」と「563」の境界は文字数で決められているわけではなく、「AL」の部分が英字、「563」の部分が数値です。 回答よろしくお願いします。

  • ExcelVBAでセルの移動をしたい

    aという変数に、A1の値を代入することはできましたが、 例えば、A2にも値があればA2の値を代入するようにしたいです。 A列の1番下のセルの値を代入させるようにするにはどうしたらよいのでしょうか。 日本語が下手ですいません。 宜しくお願い致します。 a = Range("A1")

  • エクセルの select case文

    Dim i For i = 1 To 5 Select Case Cells(i, "A") Case "午前" Range("w1").Select Selection.Copy  Cells(i, "C").Select ActiveSheet.Paste Case "午後" Range("x1").Select Selection.Copy Cells(i, "d").Select ActiveSheet.Paste  End Select Next i Dim j For j = 1 To 5 Select Case Cells(j, "A") Case "関東" Range("y1").Select Selection.Copy  Cells(j, "e").Select ActiveSheet.Paste Case "関西" Range("z1").Select Selection.Copy Cells(i, "F").Select ActiveSheet.Paste  End Select Next i 毎回皆様にはお世話になっています。 あるセルを参照してその入力結果により 違うセルを貼り付けるマクロを組みました。 参照するセルが複数個(この例だと2セル)あるので それぞれに変数を宣言してfor nextで まわしています。 この内容を変数ひとつだけで すっきりと記述することは可能でしょうか? 参照するセルや判別する内容が増えると 記述が膨大になって マクロが 見にくくなるので 良い方法がありましたら 御教授ねがいます。

  • ExcelVBAで範囲のセルを別のシートのセルに代入する方法はありますか

    ExcelVBAで範囲のセルを別のシートのセルに代入する方法はありませんか。 範囲でなく、一つのセルだけなら代入できるのですが、範囲にすると代入先が空白になってしまいます。 例えばSheet2のC1~C3をSheet1のB1~B3に代入したいとき Sheets("Sheet1").Range("B1:B3") = Sheets("Sheet2").Range("C1:C3") この記述だとSheet1のB1~B2までが空白になってしまいます。 アクティブシートが変わると処理がおかしくなるのでコピーペーストは使いにくいです。 よろしくお願いします。

  • ExcelVBAで

    お世話になってます。 ExcelVBAのSelect Caseについての質問です。 例えば、 Select Case 得点 Case Is>=80 評価="優" Case Is>=70 評価="良" ・ ・ ・ とあります。 ここで、条件の80以上というのを決まった値ではなくセルの値としてできないのでしょうか?例えばDの列の値を条件として設定できないのでしょうか? また、評価="優"というのも、決まった値ではなくEの列といったようにできないのでしょうか? 教えて下さい。

  • ExcelVBA:特殊文字の判定

    文字で英字や数字を判定するとき、「文字 Like」を使い、「"[A-Z]"」「"[0-9]"」で判定することができますが、特殊文字の場合はどうなるのでしょうか? 例をあげると、例えば、 セル「A1」の文字を調べるのに、「α」「β」「γ」「δ」であるかどうか判定したいのですが、そのような場合、 If Mid(Range("A1"), Len(Range("A1")),1) Like "[α][β][γ][δ]" = True Then このようになるのでしょうか? If Mid(Range("A1"), Len(Range("A1")),1) Like "[α-δ]" = True Then これは使えませんか? 回答よろしくお願いします。

専門家に質問してみよう