No.1ベストアンサー
- 回答日時:
以前にもこういう質問に答えたことがあって、その時は、質問者のように、文字列をインクリメントするような方法をやっていましたが、
エクセルのことはエクセルに聞けということで、
Public Function 列名(col As String, offset As Integer) As String
Dim cellAddress As String
cellAddress = Range(col & "1").offset(0, offset).AddressLocal(False, False)
列名 = Left(cellAddress, Len(cellAddress) - 1)
End Function
のようにすれば、
result = 列名("Z",1)
でresult = "AA" になります。
No.4
- 回答日時:
AA1セルの値を求めるのに
Sub test03()
Cells(1, 1) = Range("z1").Offset(0, 1)
End Sub
こういうこと(Offset)ができ増すが、そればよいのではないですか。
勘違いならすみません。
No.3
- 回答日時:
VBAでどのように使用されているかわかりませんが、列番号で指定するのはだめでしょうか。
例えば
Columns("A")
と
Columns(1)
は両方とも列の一番目(A列)を指します。
同じようにZ列は
Columns(26)
AA列は
Columns(27)
となります。
No.2
- 回答日時:
仕事でそのような機能を持つものを探しました。
結果、見つからなかったので自作しました(^_^;
A~Zを26進数の数値に変換し、演算を行ったのちにAA形式に再変換する手法をとりました。
下記は、CellRight にセル名と増分を与えると、移動先のセル名が返る関数です。(ちょっと見づらいかな?)
Private Function CellRight(ByRef CellName As String, _
ByRef Movement As Integer) As String
Dim CellID
CellID = Split(DivedeCell(CellName), ",")
CellID(2) = CellID(2) + Movement
Do While CellID(2) > 26
CellID(1) = CellID(1) + 1
CellID(2) = CellID(2) - 26
Loop
Do While CellID(2) < 1
CellID(1) = CellID(1) - 1
CellID(2) = CellID(2) + 26
Loop
If (CellID(1) = 9 And CellID(2) > 22) Or CellID(1) > 9 Then
CellID(1) = 9
CellID(2) = 22
End If
If CellID(1) < 0 Then
CellID(1) = 0
CellID(2) = 1
End If
CellRight = ConbineCell(CInt(CellID(1)), CInt(CellID(2)), CInt(CellID(3)))
End Function
Private Function DivedeCell(ByRef CellName As String) As String
Dim Result(3) As Integer
Dim C As String
Result(1) = 0
Result(2) = 0
Result(3) = 0
For I = 1 To Len(CellName)
C = UCase(Mid(CellName, I, 1))
If Asc(C) >= &H41 And Asc(C) <= &H5A Then
Result(I) = Asc(C) - &H40
Else
Result(3) = Right(CellName, Len(CellName) - I + 1)
Exit For
End If
Next
If Result(2) = 0 Then
Result(2) = Result(1)
Result(1) = 0
End If
DivedeCell = "," & Result(1) & "," & Result(2) & "," & Result(3)
End Function
Private Function ConbineCell(ByRef CellID1 As Integer, _
ByRef CellID2 As Integer, _
ByRef CellID3 As Integer) As String
Dim Result As String
Result = ""
If CellID1 <> 0 Then Result = Chr(CellID1 + &H40)
Result = Result & Chr(CellID2 + &H40)
Result = Result & CellID3
ConbineCell = Result
End Function
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルデーターの並び替え 5 2022/08/06 09:59
- Excel(エクセル) Excel 複数列のある文字を優先して1列に表示したいです 2 2022/12/03 12:07
- Excel(エクセル) 上から順にすべてのデータを抽出したい 3 2023/08/25 15:29
- Excel(エクセル) EXCEL 行固定列移動 3 2022/04/04 09:27
- Visual Basic(VBA) Excel VBAでAA(BBB) → BBB.AA に置換したい 2 2022/10/30 13:59
- Visual Basic(VBA) セルが空白だった時の処理 5 2022/09/01 07:07
- Excel(エクセル) PowerQueryに詳しい方教えてください(Office365) 1 2022/07/24 21:11
- Access(アクセス) CSVファイルの「0落ち」にVBA 6 2023/02/02 15:27
- Excel(エクセル) 週毎の集計 2 2023/08/04 16:56
- Visual Basic(VBA) Excel VBAで教えてください 4 2022/05/11 22:20
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
エクセル VBA で列番号を足す方法は?
Excel(エクセル)
-
「マクロ」の足し算の式を教えてくださいm()m
Excel(エクセル)
-
VBAのfor...next構文で i = A to Z としたい。
PowerPoint(パワーポイント)
-
-
4
Excel 例A(1+9) のように番地のたし足し算の方法を教えてください
その他(Microsoft Office)
-
5
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
6
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
7
【Excel VBA】指定行以降をクリアするには?
Visual Basic(VBA)
-
8
cellsで特定の離れた範囲を選択する方法は?
Visual Basic(VBA)
-
9
エクセル・VBA CheckBoxのオブジェクト名に変数を使うことは可能でしょうか?
Excel(エクセル)
-
10
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
11
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
12
エクセルVBAにて アルファベットを数字に変換
Excel(エクセル)
-
13
バッチ処理でファイルの中身を変数に入れるやり方
その他(プログラミング・Web制作)
-
14
「Columns(A:C")」の列文字を数字にして表記したい"
Excel(エクセル)
-
15
Cellsのかっこの中はどっちが行と列なの?
Visual Basic(VBA)
-
16
Excel:文字と数字の組合せ、次のセルの数字を1ずつ増やすには?
Excel(エクセル)
-
17
VBAで配列の計算
Excel(エクセル)
-
18
ExcelでVBAを使用した際に、『パス名が無効です』とエラーになります。
Excel(エクセル)
-
19
VBAでファイルを開くときにファイル名でワイルドカードを使用したいです
その他(プログラミング・Web制作)
-
20
配列数式の解除
Excel(エクセル)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
エクセルで文字が混じった数字...
-
Excelで、項目の種類ごとにカウ...
-
エクセル 文字数 多い順 並...
-
エクセルで最初のスペースまで...
-
2つのエクセルのデータを同じよ...
-
エクセル(勝手に太字になる)
-
「B列が日曜の場合」C列に/...
-
VBAで文字列を数値に変換したい
-
Excelで半角の文字を含むセルを...
-
VBA 連続行データを5行ずつ隣の...
-
【VBA】特定列に文字が入ってい...
-
エクセルの空欄をつめて、次の...
-
Excel、市から登録している住所...
-
エクセルの項目軸を左寄せにしたい
-
A列とB列を参照してC列に連番を...
-
VBAでセル入力の数式に変数を用...
-
エクセルの表から正の数、負の...
-
エクセル 同じ値を探して隣の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
2つのエクセルのデータを同じよ...
-
エクセルで最初のスペースまで...
-
エクセルVBA、別ブックへ転記す...
-
エクセル 文字数 多い順 並...
-
エクセル(勝手に太字になる)
-
VBAで文字列を数値に変換したい
-
エクセルで文字が混じった数字...
-
エクセルの表から正の数、負の...
-
「B列が日曜の場合」C列に/...
-
Excelで半角の文字を含むセルを...
-
エクセルの並び変えで、空白セ...
-
Excel、市から登録している住所...
-
エクセル 同じ値を探して隣の...
-
EXCELで 一桁の数値を二桁に
-
エクセル初心者です 関数の入れ...
-
A列がない・・・A列が非表示に...
-
オートフィルターをかけ、#N/A...
-
エクセルで、列の空欄に隣の列...
おすすめ情報