
こんばんは。
こちらの識者の方々にはいつもお世話になっています。
VBAの件で質問があります。
B列の最終行までA列に001から文字列で連番を振りたい場合、どのような構文になりますでしょうか。
Range("A1:A" & Range("B" & Cells.Rows.Count).End(xlUp).Row).Value = Format(row, "000")
は通らなかったのですが、なにかいい構文はありますでしょうか。
データは必ず1000行以下ですので、番号は3桁で大丈夫です。
よろしくお願いいたしますm(_ _)m
No.3ベストアンサー
- 回答日時:
こんにちは。
お邪魔します。あれこれ考えていたら新しい回答が付いていました。
既に私が回答しようという理由はなくなったのですが
せっかくなのでコードだけあげてみます。
いや、しかし、余りにも多様なので、どのような志向か限定しないと
きりがないかも知れませんね。
一応、私自身が普段書き分けている4つの志向で4タイプです。
' ' ==================================================
' ' コンサバティブ版
Sub Re7820341c()
Dim nRowOffset As Long
Dim nBtm As Long
Dim i As Long
' ' 項目タイトルが1行の(つまり2行目からナンバリングする)場合
nRowOffset = 1
nBtm = Range("B" & Cells.Rows.Count).End(xlUp).Row
For i = 1 To nBtm - nRowOffset
Cells(i + nRowOffset, 1) = Format(i, "'000")
Next i
End Sub
' ' --------------------------------------------------
' ' Excel一般機能活用版(値は数値、表示は"000")
Sub Re7820341a()
Cells(1) = 1
With Range("A1:A" & Range("B" & Cells.Rows.Count).End(xlUp).Row)
.DataSeries Rowcol:=xlColumns, Type:=xlLinear, Step:=1, Trend:=False
.NumberFormat = "000"
End With
End Sub
' ' --------------------------------------------------
' ' 配列(高速仕様)版
Sub Re7820341j()
Dim nBtm As Long
Dim nTop As Long
Dim i As Long
Columns(1).Clear
' ' 3行目からナンバリングする場合
nTop = 3
nBtm = Range("B" & Cells.Rows.Count).End(xlUp).Row
ReDim mtxPrint(nTop To nBtm, 1 To 1)
For i = nTop To nBtm
mtxPrint(i, 1) = Format(i - nTop + 1, "'000")
Next i
Range("A" & nTop & ":A" & nBtm).Value = mtxPrint
End Sub
' ' --------------------------------------------------
' ' 短い記述のマニアック版
Sub Re7820341jj()
Dim sRef As String
sRef = "A1:A" & Range("B" & Cells.Rows.Count).End(xlUp).Row
Range(sRef).Value = Application.Evaluate("transpose(text(transpose(row(" & sRef & ")),""'000""))")
End Sub
' ' ==================================================
No.4
- 回答日時:
もう一個、アポストロフィなしの文字列で記入:
sub macro3()
with range("A1:A" & range("B65536").end(xlUp).row)
.formula = "=TEXT(ROW(A1),""000"")"
.numberformat = "@"
.value = .value
end with
end sub
#言わずもがなですが
既に寄せられている回答の幾つかのマクロでやってるように、「文字列で記入」を止めてふつーに数値で記入し、表示形式で001と表示させた方がはるかに簡単です。
No.2
- 回答日時:
こんばんは。
>文字列で連番を振りたい
一応ご相談に忠実に。まぁ趣味に応じて手口は様々ですが。
sub macro1()
range("A:A").clearcontents
range("A1").characters.text = "001"
range("A1").autofill range("A1:A" & range("B65536").end(xlup).row), xlfillseries
end sub
もちろん
sub macro2()
dim r as long
for r = 1 to range("B65536").end(xlup).row
cells(r, "A") = format(r, "'000")
next r
end sub
とかしても、1000行以内程度ならそんなに目に見えて遅いことは無いだろうと思います。
No.1
- 回答日時:
こんばんは!
色々やり方はあると思いますが、
一例です。
Sub 連番()
Dim i As Long
i = Cells(Rows.Count, 2).End(xlUp).Row
With Range(Cells(1, 1), Cells(i, 1))
.Formula = "=row()"
.NumberFormatLocal = "000"
End With
End Sub
※ A列には数式が入っています。
実データにしたい場合は
Sub 連番2()
Dim i As Long
For i = 1 To Cells(Rows.Count, 2).End(xlUp).Row
With Cells(i, 1)
.Value = Cells(i, 1).Row
.NumberFormatLocal = "000"
End With
Next i
End Sub
といった感じではどうでしょうか?m(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 指定列最終行までのスペースを改行するVBAについて 2 2022/06/01 19:50
- Visual Basic(VBA) VBAで実行時エラー'424' オブジェクトが必要ですと出る 2 2022/10/07 09:25
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) excel VBA if文について 3 2022/03/27 17:42
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Visual Basic(VBA) Excel VBA キーワードから列を取得して、さらに空欄行を非表示にする 3 2022/10/21 22:49
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
- Visual Basic(VBA) VBA シート間の転記で、条件の追加コードの書き方について教えて下さい。 13 2023/02/26 09:31
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Visual Basic(VBA) VBA 罫線について B列3行目から21行毎にデータがはいります。 データがはいったらデータが入った 6 2022/11/15 17:22
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Microsoft Officeを2台目のPCに...
-
Microsoft365、ページ設定がで...
-
大学のレポート A4で1枚レポー...
-
快活CLUBについて 私用で使う書...
-
Office2021を別のPCにインスト...
-
libreoffice calcで行を挿入し...
-
エクセルで特定のセルの値を別...
-
office2019 のoutlookは2025年1...
-
エクセル:一定間隔で平均値を...
-
Excel テーブル内の空白行の削除
-
マクロ自動コピペ 貼り付ける場...
-
Teams内でショートカットって貼...
-
別シートの年間行事表をカレン...
-
Microsoft Formsの「個人情報や...
-
1つのPCに「Excel 2010」「Exc...
-
エクセルにリンクされるのをし...
-
【Excel VBA】PDFを作成して,...
-
パソコン画面の中の小さい画面...
-
outlookのメールが固まってしま...
-
マイクロソフト 一時使用コード...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
配列内データにsmallを使う
-
【VBA】 通し番号の入力について
-
結合したセルの並び替え(エク...
-
楽天RSS エクセルのマクロで10...
-
マクロでセル値をAND
-
Exelの表を以下のように全行組...
-
UWSCでie内のデータを取得しエ...
-
ワークブックを追加したあとに ...
-
VBAで保存しないで閉じると空の...
-
WPSOffice_マクロの有効化について
-
Excel マクロの編集がグレーに...
-
複数のマクロボタンをまとめて...
-
エクセル関数>参照ファイル名...
-
【Excel VBA】マクロでExcel自...
-
エクセル ボタンに設定したマク...
-
Excelのマクロでボタンを押すと...
-
マクロの保存先、開いてるすべ...
-
エクセル マクロ名にブック名...
-
エクセルでマクロ(Excel 4.0)...
-
Excelマクロで、稼働中のマクロ...
おすすめ情報