シート1 セルA1の「ZZ0010」の値をセルA2からA5まで、
更にシート2 セルB1からB3までオートフィルをして連続したデータ(ZZ0010からZZ0018まで)を作成することはできますでしょうか?
同じシート内であれば以下のVBAでオートフィル可能でした、シート間の指定の仕方がうまく行かず悩んでいます。
もしくはもっと簡単な方法があれば教えてください。
よろしくお願いいたします。
Sub テスト
Range("A1").AutoFill Destination:=Range("A1:A5"), _
Type:=xlFillSeries
End Sub
No.5ベストアンサー
- 回答日時:
オートフィル的な動作をするものも作りました。
Sub 連続数セット(エリア As Range, Optional 初位置 As Variant)
Dim 対象 As Range
Static フォーマット As String
Static 数 As Long
Dim 位置 As Long
Dim 数字 As String
If Not IsMissing(初位置) Then
フォーマット = ""
For 位置 = Len(初位置.Value) To 1 Step -1
If IsNumeric(Mid(初位置.Value, 位置, 1)) Then
フォーマット = "0" & フォーマット
数字 = Mid(初位置.Value, 位置, 1) & 数字
Else
フォーマット = Mid(初位置.Value, 位置, 1) & フォーマット
End If
Next
数 = 数字
End If
For Each 対象 In エリア
対象.Value = Format(数, フォーマット)
数 = 数 + 1
Next
End Sub
使い方は以下のようになります。(Sheet1 の A1 セルに初期値が入っているとして)
Sub テスト()
Call 連続数セット(Sheets("Sheet1").Range("A1:A5"), Sheets("Sheet1").Range("A1"))
Call 連続数セット(Sheets("Sheet2").Range("B1:B3"))
End Sub
※ オートフィルと違い初位置には原点を含まない指定も出来ます。
※ A1 に「ZZ12A8」を入れてテストを実行すると判りますが、数字の間に数字以外の文字が入っても動作します。
すばらしい!私のやりたいことはまさにこれです。
お察しの通り原点の値が流動的に変化すること、オートフィル対象シートが複数あり面倒でしたのでご相談させていただきました。
ありがとうございます。
No.4
- 回答日時:
No.3 の注意点
① エラーなどすると書式や初数はクリアされて初期値になります、なるべくまとめて処理して下さい。
② 書式や初数の初期値は、それぞれ「""」(空白)と「0」になります。
No.3
- 回答日時:
No.2 を少し改良しました。
改良点 エリア以外は省略可能にし戻り値が不要になりましたので「Function」ではなく「Sub」にしました。省略した場合は、書式は前回の物、初数は前回の次の数がそれぞれセットされます。
Sub 連続数セット(エリア As Range, Optional 書式 As Variant, Optional 初数 As Variant)
Dim 対象 As Range
Static フォーマット As String
Static 数 As Long
If Not IsMissing(書式) Then フォーマット = 書式
If Not IsMissing(初数) Then 数 = 初数
For Each 対象 In エリア
対象.Value = Format(数, フォーマット)
数 = 数 + 1
Next
End Sub
使い方は以下のようになります。
Sub テスト()
Call 連続数セット(Sheets("Sheet1").Range("A1:A5"), "ZZ0000", 10)
Call 連続数セット(Sheets("Sheet2").Range("B1:B3"))
End Sub
No.2
- 回答日時:
オートフィルは原点を含む連続したエリアしか出来ないと思います。
(そういう機能)しかも、なぜVBAで使う必要が有るか?判りません
原点の書式が毎回変化するので面倒とかでしょうか?
一応ユーザー定義関数を作ってみました
Function 連続数セット(フォーマット As String, 数 As Long, エリア As Range) As Long
Dim 対象 As Range
For Each 対象 In エリア
対象.Value = Format(数, フォーマット)
数 = 数 + 1
Next
連続数セット = 数
End Function
使い方は以下のようになります。
残念ながらシートを跨いでの処理は出来ませんので2行に分ける必要があります。
Sub テスト()
Dim スタート数 As Long
スタート数 = 10
スタート数 = 連続数セット("ZZ0000", スタート数, Sheets("Sheet1").Range("A1:A5"))
スタート数 = 連続数セット("ZZ0000", スタート数, Sheets("Sheet2").Range("B1:B3"))
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Visual Basic(VBA) Excelのマクロについて教えてください。 1 2023/03/12 12:16
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/26 13:19
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 3 2022/06/10 09:24
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- Excel(エクセル) VBAのoffsetの動き方について教えてください 3 2022/11/25 23:36
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/03/02 08:40
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/05/26 17:19
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
HDDからSSDへ換装するときにMBR...
-
SDカードを挿入すると「写真など...
-
車で使用していた音楽用のSDカ...
-
CDやDVDのフォーマットに...
-
SSDにフルフォーマットしてはい...
-
快活クラブなどのネットカフェ...
-
iPhoneに入っているメモのAaと...
-
SSDに不良セクタが出来たら不良...
-
CD-RやDVD-RWのフォーマット/初...
-
KADOKAWA電撃大賞は応募フォー...
-
コピーできないプロパティを持っ...
-
pspのメモリースティックをpcで...
-
FAT32フォーマットのハードディ...
-
エクセルのグラフがプレビュー...
-
DS LINKERとのアクセス方法
-
MACフォーマットのHDをWindows...
-
USBメモリのFAT32とNTFSについて
-
HDDの新規フォーマットをパスワ...
-
SDカードをフォーマットせずに...
-
ハイレゾの音楽をCDに焼くのは...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SDカードを挿入すると「写真など...
-
SSDにフルフォーマットしてはい...
-
車で使用していた音楽用のSDカ...
-
コピーできないプロパティを持っ...
-
USBメモリのFAT32とNTFSについて
-
CD-Rがフォーマットできなくて...
-
快活クラブなどのネットカフェ...
-
HDDからSSDへ換装するときにMBR...
-
CDやDVDのフォーマットに...
-
ファイルシステムが破損してい...
-
プリンタのドライバーをUSB Fla...
-
MOディスクデータの完全消去に...
-
iPhoneに入っているメモのAaと...
-
PS4本体を初期化すれば、クレジ...
-
予約サイト 美容室やタイヤ交換...
-
ハイレゾの音楽をCDに焼くのは...
-
UDF2.00と2.01はどう違うの...
-
SSDに不良セクタが出来たら不良...
-
緊急です! 今スマホを再起動し...
-
CD-RやDVD-RWのフォーマット/初...
おすすめ情報