
ファイル名をフォルダに作成するVBAを作りました。そのファイル名を①オプションボタン1~4を押したらファイル名の拡張子を除いてお尻に文字列”あ”を入れる。オプションボタン2を押す→い、3→う、4→えという風に。例)72030001(拡張子ナシ)あ。選択しない場合は選択を促す。ユーザーフォーム1,2,3,4のそれぞれのテキストボックス1にその値を転記する。②同じワークブックのシート1,2,3,4のそれぞれのB1セルにも同じ値を転記する。(ユーザーフォーム1=ワークシート1)仕事に必要で尚且つ最近VBAを始めたばかりで、どうすればいいのか困ってしまい相談しました。どうぞよろしくお願いします。
Sub test()
Const fpath As String = "C:\work\"
Dim nen As Integer
Dim wpath As String
Dim fname As String
Dim no As Integer
nen = Year(Date) - Year(DateSerial(2023, 1, 1)) + 72
wpath = fpath & nen
If Dir(wpath, vbDirectory) = "" Then
MsgBox "今年のフィルダが作成されていません"
Exit Sub
End If
fname = Dir(wpath & "\*.xlsx", vbNormal)
Do Until fname = ""
If Mid(fname, 5, 3) * 1 > no Then
no = Mid(fname, 5, 3) * 1
End If
fname = Dir()
Loop fname = wpath & "\" & nen & Format(Month(Date), "00") & Format(no + 1, "000")
ThisWorkbook.SaveAs fname & ".xlsm"
End Sub
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
こんばんは
オプションボタンは説明にあるのみで、どこにも出てこないので、どうなっているのかサッパリですが・・・
>オプションボタン2を押す→い、3→う、4→えという風に
単純に変数をひとつ作成しておいて、オプションボタンのクリックイベントで、その変数を「あ」、「い」、「う」・・に置き換えるだけで済みそうですね。
最終的に処理を行う際に、その変数の値を付加するようにしておけば良いでしょう。
変数にしなくても、フォームの非表示ラベルに記録しておいたり、シートの空きセルを利用するなどしても(どこに記憶しておくかだけなので)可能と思います。
>同じワークブックのシート1,2,3,4のそれぞれのB1セルにも同じ値を転記する。
シートのセル値を読むのとほぼ同様の処理で行えます。(右辺と左辺が変わるだけ)
例えば、シート名 "hoge" の「B10」セルに値 "fuga" を設定するなら
Worksheets("hoge").Range("B10").Value = "fuga"
といった要領です。
上記は文字列で直接指定していますが、もちろん変数で指定することも可能です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルVBA、ファイル名をセルの値で保存の方法を教えてください。 おそれいります。こちらで数々のエ 6 2023/06/30 22:17
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:12
- Visual Basic(VBA) 特定の文字を含むシートだけマクロ処理をしたい 1 2023/05/22 01:43
- Visual Basic(VBA) 【VBA】印刷マクロのループ処理が反映されません 3 2022/08/09 02:15
- Excel(エクセル) エクセルVBA、間違っているコード内容を正して頂けませんか? エクセルワークシートに納品書を作ったの 2 2023/08/02 21:13
- Excel(エクセル) このコードに追記事項の仕方を教えて下さい。 以下のコード内容に出てくる。セルH3が空白の場合、エラー 4 2023/08/03 00:22
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/03 09:11
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Excel(エクセル) エクセル2019でPDFファイル名に枝番号をつけたい。 アクティブワークシートを印刷した後の処理とし 4 2023/06/06 21:00
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel-vba 文字列と変数を...
-
C言語 exitの使い方
-
フォームを開くときに、コンボ...
-
4択問題のプログラムでランダム...
-
HTML上の2つの連動するプルダウ...
-
DWORDって
-
プログラミング 2つの整数を読...
-
バブルソートとクイックソート
-
数字の位ごとの値を表示するプ...
-
fortran:角度の範囲を限定させる
-
VB6.0-整数と余りを求める
-
VBAで配列のNULL判定
-
【C++/CLI】String型文字列の位...
-
VBAの定数の使い方で、計算値を...
-
VBAでダブルコーテーション入り...
-
VBA 1行で複数の代入を行った...
-
Windows11のカメラで動画を撮り...
-
[開通手順]ネットワーク設定が...
-
excelの、ある数式内の{}の意...
-
URLが開いた後に処理したい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語 exitの使い方
-
Excel-vba 文字列と変数を...
-
フォームを開くときに、コンボ...
-
数字の位ごとの値を表示するプ...
-
VB6.0-整数と余りを求める
-
足して100になるような乱数のア...
-
ラジオボタンの値の取得につい...
-
C#で動的にコントロールを取得...
-
VBAで配列のNULL判定
-
データ構造のmapとは?
-
関数で複数の値を戻り値として...
-
世界のナベアツ
-
VBA コンボボックスの値をスピ...
-
VBAの定数の使い方で、計算値を...
-
スピンボタンで小数点
-
1つ前の値を変数に保存する方法
-
Nullってどういう意味ですか?
-
コンボボックスの名前を変数に...
-
DWORDって
-
vbaで極大値を抽出する方法
おすすめ情報
すみません補足します。ユーザーフォーム90のコマンドボタン1を押すとユーザーフォーム0が開き、ユーザーフォーム0にオプションボタンが縦に4つ並んでいます。そして今回依頼の流れになります。記載のコードは他の方にお願いして書いて頂いたものです。勉強中の身で、切迫しており何分よろしくお願いします。