アルファベットの26進(ツイッターお題)
ツイッターで出されたお題をVBAで回答したものです。
次のアルファベットを桁上げし、
ABA,ABC?ZZZまで計算するコードを書きたい。
お題のツイート
よくある方法
10進数値を26で割っていく方法で各桁を0~25の数値に変換し、
その後、0~25を"A"~"Z"に変換して作成する方法です。
文字コードは、"A"が65、そこから1ずつ増えていき、"Z"が90です。
つまり、0~25に65を加算した文字コードが"A"~"Z"になります。
上記ツイートを辿ればいろいろな回答が出ています。
回答したVBAコード
Sub main()
Const alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Dim i, str As String
str = "AAA": Debug.Print str
For i = 1 To 26 * 26 * 26 - 1
If Mid(str, 3, 1) = "Z" Then
If Mid(str, 2, 1) = "Z" Then
Mid(str, 1, 1) = Mid(alpha, InStr(alpha, Mid(str, 1, 1)) + 1, 1)
Mid(str, 2, 1) = "A"
Else
Mid(str, 2, 1) = Mid(alpha, InStr(alpha, Mid(str, 2, 1)) + 1, 1)
End If
Mid(str, 3, 1) = "A"
Else
Mid(str, 3, 1) = Mid(alpha, InStr(alpha, Mid(str, 3, 1)) + 1, 1)
End If
Debug.Print str
Next
End Sub
使用している関数等は、
注意点はMid関数とMidステートメントの違いです。
上記解説ページを参考に、VBAコードを読み解いてみてください。
AAB
・・・
AAY
AAZ
ABA
ABB
・・・
AZZ
BAA
BAB
・・・
ZZY
ZZZ
同じテーマ「エクセル雑感」の記事
「VBAで導関数を求めよ」ツイッターのお題をやってみた
ツイッターのお題「君の名は?」
ツイッターのお題「CSV編集」
アルファベットの26進(ツイッターお題)
ナンバープレート数字遊び:ツイッターお題
保護されたブックの非表示シートについて
文字列のセルだけ結合
時間に関する関数の扱い方
COUNTIF関数の結果は?
【超難問】エクセル数式問題
IFステートメントの判定
新着記事NEW ・・・新着記事一覧を見る
VBA100本ノック 98本目:席替えルールが守られているか確認|VBA練習問題(3月1日)
VBA100本ノック 97本目:Accessからデータを取得2|VBA練習問題(2月27日)
VBA100本ノック 96本目:Accessからデータを取得1|VBA練習問題(2月26日)
VBA100本ノック 95本目:図形のテキストを検索するフォーム作成|VBA練習問題(2月24日)
VBA100本ノック 94本目:表範囲からHTMLのtableタグを作成|VBA練習問題(2月23日)
VBA100本ノック 93本目:複数ブックを連結して再分割|VBA練習問題(2月22日)
VBA100本ノック 92本目:セルの色を16進で返す関数|VBA練習問題(2月20日)
VBA100本ノック 91本目:時間計算(残業時間の月間合計)|VBA練習問題(2月19日)
VBA100本ノック 90本目:セルに重なっている画像の削除|VBA練習問題(2月17日)
VBA100本ノック 89本目:2つのフォルダの統合|VBA練習問題(2月16日)
アクセスランキング ・・・ ランキング一覧を見る
1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.マクロって何?VBAって何?|VBA入門
5.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
6.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
7.繰り返し処理(For Next)|VBA入門
8.セルに文字を入れるとは(Range,Value)|VBA入門
9.マクロはどこに書くの(VBEの起動)|VBA入門
10.とにかく書いてみよう(Sub,End Sub)|VBA入門
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。