
ファイル名をフォルダに作成する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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA セル間のリンク修正につい...
-
vba textboxへの入力について教...
-
複数のExcelファイルをマージす...
-
【マクロ】並び替えの範囲が、...
-
VBA ユーザーフォーム ボタンク...
-
Vba Array関数について教えてく...
-
【マクロ】シートの変数へ入れ...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
【マクロ】開いているブックの...
-
ワードの図形にマクロを登録で...
-
えくせるのVBAコードについて教...
-
エクエルのVBAコードについて教...
-
Excel VBA 選択範囲の罫線色の...
-
[VB.net] ボタン(Flat)のEnable...
-
VBAでCOPYを繰り返すと、処理が...
-
vbaにてseleniumを使用したedge...
-
Vba セルの4辺について罫線が有...
-
vbsでのwebフォームへの入力制限?
-
エクセルのマクロについて教え...
-
エクセルの改行について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語 exitの使い方
-
フォームを開くときに、コンボ...
-
Excel-vba 文字列と変数を...
-
VB6.0-整数と余りを求める
-
ラジオボタンの値の取得につい...
-
足して100になるような乱数のア...
-
VBAで配列のNULL判定
-
VBA コンボボックスの値をスピ...
-
データ構造のmapとは?
-
VBAの定数の使い方で、計算値を...
-
フリーランタイマーの時間差分...
-
1つ前の値を変数に保存する方法
-
C#で動的にコントロールを取得...
-
コンボボックスの名前を変数に...
-
UWSCのcallについて
-
Nullってどういう意味ですか?
-
DWORDって
-
[シェルスクリプト] 空文字の判...
-
Access2003 オートナンバーの現...
-
2つの列で重複するキーの数と...
おすすめ情報
すみません補足します。ユーザーフォーム90のコマンドボタン1を押すとユーザーフォーム0が開き、ユーザーフォーム0にオプションボタンが縦に4つ並んでいます。そして今回依頼の流れになります。記載のコードは他の方にお願いして書いて頂いたものです。勉強中の身で、切迫しており何分よろしくお願いします。