Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


14768 / 76734 ←次へ | 前へ→

【67454】Re:VBAからWorkSheet関数の利用方法について
発言  kanabun  - 10/12/5(日) 21:21 -

引用なし
パスワード
   ▼夜勤当直者 さん:
おじゃまします

>エラーがでました。どこに間違っているのか?わからなくて、困っています。

とりあえず、構文エラーをなくすために、
ワークシート関数 CHAR() は VBAで Chr$関数にしましょう
また
>Dim I, I1 As Integer
は I のあとにも、As Integerを指定しないと、単にVariant型です。

Sub QT()
Dim kaku(1 To 78) As String
Dim I As Long, I1 As Long
For I = 1 To 78
 Select Case I
     Case Is <= 26
      For I1 = 65 To 90
        kaku(I1) = Chr$(I1)   ' kakuの値:A,B・・・Z
      Next I1
     Case 27 To 52
      For I1 = 65 To 90
        kaku(I1) = "A" & Chr$(I1) ' kakuの値:AA,AB・・・AZ
      Next I1
     Case Is > 52
      For I1 = 65 To 90
        kaku(I1) = "B" & Chr$(I1) ' kakuの値:BA,BB・・・BZ
      Next I1
  End Select
Next I
End Sub

これで、コンパイルは通ると思いますが、配列の要素数が足りなくて
実行時エラーになりますね?


>ちなみに、I=1〜26の場合は、
>        kakuの値:A,B・・・Z
>     I=27〜52の場合は、
>        kakuの値:AA,AB・・・AZ
>     I=53〜78の場合は、
>        kakuの値:BA,BB・・・BZ
>     の結果を求めたいです。

ということからすると、こうですかね?

Sub try()
 Dim kaku(1 To 78) As String
 Dim I As Long
 Dim S As String
 
 For I = 1 To 26
   S = Chr$(&H40 + I)
   kaku(I) = S      ' kakuの値:A,B・・・Z
   kaku(I + 26) = "A" & S ' kakuの値:AA,AB・・・AZ
   kaku(I + 52) = "B" & S ' kakuの値:BA,BB・・・BZ
 Next I
 
'確認
 For I = 1 To 78
   Debug.Print kaku(I),
 Next
End Sub
4 hits

【67452】VBAからWorkSheet関数の利用方法について 夜勤当直者 10/12/5(日) 20:27 質問
【67453】Re:VBAからWorkSheet関数の利用方法につ... りん 10/12/5(日) 21:12 発言
【67454】Re:VBAからWorkSheet関数の利用方法につ... kanabun 10/12/5(日) 21:21 発言
【67455】Re:VBAからWorkSheet関数の利用方法につ... UO3 10/12/6(月) 7:33 発言
【67456】Re:VBAからWorkSheet関数の利用方法につ... UO3 10/12/6(月) 8:59 発言

14768 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free