!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑同じ内容を2行貼り付けるナリ
ExcelのVBAに関する質問スレナリ
コード書き込みや作成依頼もOKナリ
※前スレ
Excel VBA 質問スレ Part70
https://mevius.5ch.net/test/read.cgi/tech/1616072923/
Excel VBA 質問スレ Part71
https://mevius.5ch.net/test/read.cgi/tech/1621914481/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
Excel VBA 質問スレ Part73
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 4668-xJJl)
2021/09/13(月) 07:29:59.47ID:GNx0xRRz0399デフォルトの名無しさん (ワッチョイ 9f4f-/GGz)
2021/10/15(金) 22:02:32.86ID:xvvRRo/+0 >>398
役割。
モジュールもメソッドも全てに役割分担を持たせてキチンと仕舞うべき場所に仕舞っておく。
だからその役割を行う為なら100行になろうが1000行になろうがそのメソッドに記載する。
何を持ってしてひとつの役割とするかは作る人のセンスに掛かってくるから場数をこなして慣れるしかないかな。
役割。
モジュールもメソッドも全てに役割分担を持たせてキチンと仕舞うべき場所に仕舞っておく。
だからその役割を行う為なら100行になろうが1000行になろうがそのメソッドに記載する。
何を持ってしてひとつの役割とするかは作る人のセンスに掛かってくるから場数をこなして慣れるしかないかな。
400デフォルトの名無しさん (ワッチョイ 0fda-ZO17)
2021/10/15(金) 22:06:51.27ID:xdjJa8Ad0401デフォルトの名無しさん (ワッチョイ ab5f-UsRe)
2021/10/16(土) 13:55:14.29ID:Hx8OP0An0 >>398
> 分けすぎると逆に関数があっちこっちに分散してどれが何に使われているのか分かり辛くなる
関数にカーソル合わせて「Shift+F2」で定義箇所に飛べるよ
https://www.wordvbalab.com/code/2925/
まあ言語自体も開発環境も貧弱すぎるからまとめたくなっちゃう感覚はわかるけど
> 分けすぎると逆に関数があっちこっちに分散してどれが何に使われているのか分かり辛くなる
関数にカーソル合わせて「Shift+F2」で定義箇所に飛べるよ
https://www.wordvbalab.com/code/2925/
まあ言語自体も開発環境も貧弱すぎるからまとめたくなっちゃう感覚はわかるけど
402デフォルトの名無しさん (ワッチョイ 6b01-Avck)
2021/10/16(土) 16:39:05.71ID:EZGI4ZK10 調べてもわからないのでお聞きしたいです
下の処理でtest3まで処理は正常に行われるんですが
mainに戻ったときに型の不一致でエラーが出て止まってしまいます。
Dim WS As Worksheet
Sub main()
Call test3(TEMP_SHEET)
End Sub
Function TEMP_SHEET() As Worksheet
Set TEMP_SHEET = ThisWorkbook.Worksheets("temp")
Set WS = TEMP_SHEET
End Function
Function test3() As Variant
With WS
.Select
.Cells(1, 1) = "test"
End With
End Function
下の処理でtest3まで処理は正常に行われるんですが
mainに戻ったときに型の不一致でエラーが出て止まってしまいます。
Dim WS As Worksheet
Sub main()
Call test3(TEMP_SHEET)
End Sub
Function TEMP_SHEET() As Worksheet
Set TEMP_SHEET = ThisWorkbook.Worksheets("temp")
Set WS = TEMP_SHEET
End Function
Function test3() As Variant
With WS
.Select
.Cells(1, 1) = "test"
End With
End Function
403デフォルトの名無しさん (ワッチョイ 4b68-ZO17)
2021/10/16(土) 16:51:56.90ID:a6cW1Kja0 test3()なのにcallで引数渡そうとしてる
404デフォルトの名無しさん (ワッチョイ fbe6-twAR)
2021/10/16(土) 17:03:21.91ID:cq/EQnSr0 VariantにはArrayとかも入るから ()付けても書式エラーにはならないのかな
405デフォルトの名無しさん (ワッチョイ 5bda-ir6K)
2021/10/16(土) 17:06:32.68ID:eJomN4xc0406デフォルトの名無しさん (ワッチョイ fbe6-twAR)
2021/10/16(土) 17:09:51.40ID:cq/EQnSr0 test3の実行後にエラーになるのがこの質問のミソだと思うよ
407デフォルトの名無しさん (ブーイモ MM4f-ZO17)
2021/10/16(土) 17:43:21.23ID:nAOL9IkjM >>402
そもそも「test3までは正常」というのが間違い
これではまったく動かない
とりあえず動くようにするなら、たとえばこう書けばいい
ほかにも色々なパターンが考えられるけど、何がやりたいのかよくわからないので
Dim WS As Worksheet
Sub main()
Call TEMP_SHEET
Call test3
End Sub
Sub TEMP_SHEET()
Set WS = ThisWorkbook.Worksheets("temp")
End Sub
Sub test3()
With WS
.Select
.Cells(1, 1) = "test"
End With
End Sub
そもそも「test3までは正常」というのが間違い
これではまったく動かない
とりあえず動くようにするなら、たとえばこう書けばいい
ほかにも色々なパターンが考えられるけど、何がやりたいのかよくわからないので
Dim WS As Worksheet
Sub main()
Call TEMP_SHEET
Call test3
End Sub
Sub TEMP_SHEET()
Set WS = ThisWorkbook.Worksheets("temp")
End Sub
Sub test3()
With WS
.Select
.Cells(1, 1) = "test"
End With
End Sub
408デフォルトの名無しさん (ワッチョイ 2b10-c8v8)
2021/10/16(土) 18:35:14.73ID:Pp6vdwK70 確かにこれではtest3は動かない
409デフォルトの名無しさん (ワッチョイ 0fda-ZO17)
2021/10/16(土) 18:36:14.79ID:njPM+lzE0 >>402
test3まで処理が正常に行われたなら気にしなくていいんじゃね
test3まで処理が正常に行われたなら気にしなくていいんじゃね
410デフォルトの名無しさん (ワッチョイ fb2f-4HJo)
2021/10/16(土) 18:46:34.14ID:m1u7MgLp0 ステップ実行させたら確かにtest3実行するな
こんなのコンパイルエラーで良いと思うんだが、なかなか興味深い
こんなのコンパイルエラーで良いと思うんだが、なかなか興味深い
411デフォルトの名無しさん (ワッチョイ 6b01-Avck)
2021/10/16(土) 18:57:45.79ID:EZGI4ZK10 ありがとうございます!
test3はsubでよかったんですね。
参考にしながらいろいろ試したらできました。
すごく助かりました。
test3はsubでよかったんですね。
参考にしながらいろいろ試したらできました。
すごく助かりました。
412デフォルトの名無しさん (ワッチョイ fb2f-4HJo)
2021/10/16(土) 19:30:00.02ID:m1u7MgLp0 いや、問題はSubかFunctionかじゃないんだが
FunctionをCallしても、戻り値が捨てられるだけで別に問題はないぞ
名前の付け方がまあアレだが
Dim WS As Worksheet の行消して
Function TEMP_SHEET() As Worksheet
Set TEMP_SHEET = ThisWorkbook.Worksheets("temp")
End Function
Function test3(WS As Worksheet) As Variant
With WS
.Select
.Cells(1, 1) = "test"
End With
End Function
とかで動くだろ
FunctionをCallしても、戻り値が捨てられるだけで別に問題はないぞ
名前の付け方がまあアレだが
Dim WS As Worksheet の行消して
Function TEMP_SHEET() As Worksheet
Set TEMP_SHEET = ThisWorkbook.Worksheets("temp")
End Function
Function test3(WS As Worksheet) As Variant
With WS
.Select
.Cells(1, 1) = "test"
End With
End Function
とかで動くだろ
413デフォルトの名無しさん (ワッチョイ 6b01-Avck)
2021/10/16(土) 20:00:16.92ID:EZGI4ZK10 >>412
ありがとうございます。すごく勉強になりました。
ありがとうございます。すごく勉強になりました。
414デフォルトの名無しさん (アウアウエー Sa3f-qeGn)
2021/10/16(土) 21:23:47.08ID:aQ5UbG+6a 最終の答え得るためにいくつの関数に分けるか、というのはどうやったら身につくんでしょうか
415デフォルトの名無しさん (ワッチョイ 4b68-ZO17)
2021/10/16(土) 21:32:26.89ID:a6cW1Kja0 分けたくなったら分ければいい
・朝起きる
・トイレ
・歯磨き
・食事
・デンタルフロス
・着替え
・家出る
寝起きのルーチンとしてトイレ歯磨きをセットとするとか
無い時もある食事デンタルフロスをセットとするとか
歯磨きが先なのは寝起きで飲み食いが嫌で個人的な事だから異論はあると思う
・朝起きる
・トイレ
・歯磨き
・食事
・デンタルフロス
・着替え
・家出る
寝起きのルーチンとしてトイレ歯磨きをセットとするとか
無い時もある食事デンタルフロスをセットとするとか
歯磨きが先なのは寝起きで飲み食いが嫌で個人的な事だから異論はあると思う
416デフォルトの名無しさん (ワッチョイ 0fb0-TpuX)
2021/10/16(土) 21:49:34.88ID:CDLajE+o0417デフォルトの名無しさん (アウアウエー Sa3f-qeGn)
2021/10/17(日) 09:01:15.98ID:MVHP31+Wa418デフォルトの名無しさん (ワッチョイ 2bb1-SdPo)
2021/10/17(日) 11:37:36.37ID:LVwZEVKT0 別スレから来ました
A1 会社名 B1仕事の項目 C1整理番号
B1の項目に従って規定のExcelファイルを開いてA1の会社名とC1の整理番号を合体して名前をつけて保存っていう操作をしたいんだけど、これはVBAで出来ますか?
別件ですがVBAでオススメの書籍があれば教えてください
A1 会社名 B1仕事の項目 C1整理番号
B1の項目に従って規定のExcelファイルを開いてA1の会社名とC1の整理番号を合体して名前をつけて保存っていう操作をしたいんだけど、これはVBAで出来ますか?
別件ですがVBAでオススメの書籍があれば教えてください
419デフォルトの名無しさん (ワッチョイ 8b01-UJka)
2021/10/17(日) 11:41:00.73ID:Vlp9RG+s0 余裕で可能
420デフォルトの名無しさん (ワッチョイ 2b10-8HLh)
2021/10/17(日) 11:47:00.68ID:rQoWwir60421デフォルトの名無しさん (ワッチョイ 9f4f-/GGz)
2021/10/17(日) 12:11:29.02ID:ZLWKnlAP0422デフォルトの名無しさん (ワッチョイ 2b10-8HLh)
2021/10/17(日) 12:14:56.83ID:rQoWwir60 なんでExcelファイル操作するのにRubyスレから来るんだよ
423デフォルトの名無しさん (ワッチョイ 2bb1-SdPo)
2021/10/17(日) 12:16:45.71ID:LVwZEVKT0 別スレから来ました
A1 会社名 B1仕事の項目 C1整理番号
B1の項目に従って規定のExcelファイルを開いてA1の会社名とC1の整理番号を合体して名前をつけて保存っていう操作をしたいんだけど、これはVBAで出来ますか?
別件ですがVBAでオススメの書籍があれば教えてください
A1 会社名 B1仕事の項目 C1整理番号
B1の項目に従って規定のExcelファイルを開いてA1の会社名とC1の整理番号を合体して名前をつけて保存っていう操作をしたいんだけど、これはVBAで出来ますか?
別件ですがVBAでオススメの書籍があれば教えてください
424デフォルトの名無しさん (ワッチョイ 2b10-8HLh)
2021/10/17(日) 12:18:39.23ID:rQoWwir60 頭おかしくなったのか?
425デフォルトの名無しさん (ワッチョイ 2bb1-SdPo)
2021/10/17(日) 12:19:45.69ID:LVwZEVKT0 ブラウザバックしたら投稿した
すまない
Excel質問スレから来た
>>420
名前をつけて保存の前にいろいろやろうとは思ってるけど、VBA素人だからとりあえず名前をつけて保存までにしようと
VBAで出来ることはわかったのでダイマでもステマでもいいのでオススメの書籍を教えてください
すまない
Excel質問スレから来た
>>420
名前をつけて保存の前にいろいろやろうとは思ってるけど、VBA素人だからとりあえず名前をつけて保存までにしようと
VBAで出来ることはわかったのでダイマでもステマでもいいのでオススメの書籍を教えてください
426デフォルトの名無しさん (ワッチョイ 8b01-UJka)
2021/10/17(日) 12:22:55.44ID:Vlp9RG+s0 だってルビースレから来た時点で質問が目的じゃなくて
最終的にルビーコード貼り付けてどやーするのが目的の人だし
最終的にルビーコード貼り付けてどやーするのが目的の人だし
427デフォルトの名無しさん (ワッチョイ 2bb1-SdPo)
2021/10/17(日) 13:08:15.77ID:LVwZEVKT0 ルビースレってそもそもなんなのかって状態なんだが…
この板はブラウザバックで二重投稿した程度で中傷くらったりするのか?
エクセルのVBAについて質問してるのに全然違う答え返ってくるし
この板はブラウザバックで二重投稿した程度で中傷くらったりするのか?
エクセルのVBAについて質問してるのに全然違う答え返ってくるし
428デフォルトの名無しさん (ブーイモ MM4f-gSog)
2021/10/17(日) 13:55:19.97ID:l76d9bPwM ニヤニヤ
429デフォルトの名無しさん (ワッチョイ 0fda-ZO17)
2021/10/17(日) 14:58:05.05ID:OE8yqt320 >>425
自分で本屋に行って内容を確認しようとは思わないのか?
自分で本屋に行って内容を確認しようとは思わないのか?
430デフォルトの名無しさん (ワッチョイ 2b10-8HLh)
2021/10/17(日) 15:24:33.87ID:rQoWwir60 >>425
B1の項目に従ってというのが謎なので気を利かせて絶対パスで指定のファイルを開くようにしたよ。
ちなみに5ちゃんに書くとファイルパスの¥マーク書けないから半角に直してね。
思ってた動きと違うと言うなら自分の質問200回音読してから書いてね。
動作が不足してるならちゃんと質問のここが出来てないって書いてね。
使い方
・データを打ち込んでるブックで、処理させたいデータの行のどの列でもいいから選択しておく
・マクロ実行
・指定したファイルに選択した行のA列+C列のデータの名前で名前をつけて保存される
─────────────────────
Sub test()
Gyo = Selection.Row
Data0 = Cells(Gyo, 1).Value
Data1 = Format(Cells(Gyo, 3), "000")
Namae0 = ThisWorkbook.Path & "¥" & Data0 & Data1 & ".xlsx"
Namae1 = Data0 & Data1 & ".xlsx"
Workbooks.Open "C:\Users\*****.xlsx"
Workbooks("*****.xlsx").SaveAs Filename:=Namae0
Workbooks(Namae1).Close
End Sub
B1の項目に従ってというのが謎なので気を利かせて絶対パスで指定のファイルを開くようにしたよ。
ちなみに5ちゃんに書くとファイルパスの¥マーク書けないから半角に直してね。
思ってた動きと違うと言うなら自分の質問200回音読してから書いてね。
動作が不足してるならちゃんと質問のここが出来てないって書いてね。
使い方
・データを打ち込んでるブックで、処理させたいデータの行のどの列でもいいから選択しておく
・マクロ実行
・指定したファイルに選択した行のA列+C列のデータの名前で名前をつけて保存される
─────────────────────
Sub test()
Gyo = Selection.Row
Data0 = Cells(Gyo, 1).Value
Data1 = Format(Cells(Gyo, 3), "000")
Namae0 = ThisWorkbook.Path & "¥" & Data0 & Data1 & ".xlsx"
Namae1 = Data0 & Data1 & ".xlsx"
Workbooks.Open "C:\Users\*****.xlsx"
Workbooks("*****.xlsx").SaveAs Filename:=Namae0
Workbooks(Namae1).Close
End Sub
431デフォルトの名無しさん (ワッチョイ 8b01-UJka)
2021/10/17(日) 15:26:59.96ID:Vlp9RG+s0 あーあルビーキチガイに無駄なエネルギー使ってる
432デフォルトの名無しさん (ワッチョイ bb5f-n10C)
2021/10/17(日) 15:28:04.20ID:XdTFVkom0 ツンデレで草
433デフォルトの名無しさん (ドコグロ MMcf-ORg4)
2021/10/17(日) 16:11:59.85ID:lULOB+dMM >>430
> Workbooks.Open "C:\Users\*****.xlsx"
> Workbooks("*****.xlsx").SaveAs Filename:=Namae0
> Workbooks(Namae1).Close
こんなふうに書く人いるけどなんで
Dim Book As Workbook
Set Book = Workbooks.Open("C:\Users\*****.xlsx")
Book.SaveAs Filename:=Namae0
Book.Close
って書かないのか不思議だ
> Workbooks.Open "C:\Users\*****.xlsx"
> Workbooks("*****.xlsx").SaveAs Filename:=Namae0
> Workbooks(Namae1).Close
こんなふうに書く人いるけどなんで
Dim Book As Workbook
Set Book = Workbooks.Open("C:\Users\*****.xlsx")
Book.SaveAs Filename:=Namae0
Book.Close
って書かないのか不思議だ
434デフォルトの名無しさん (ワッチョイ ef68-VjlT)
2021/10/17(日) 19:08:06.14ID:F19IWtWk0435デフォルトの名無しさん (ドコグロ MMcf-ORg4)
2021/10/17(日) 19:23:15.59ID:6d2YQk+QM なるほど、結構基本的なことだと思ってたけどそうでもないんかな
シートでも Worksheets("sheet1").~ って書いてる人をよく見る
シートでも Worksheets("sheet1").~ って書いてる人をよく見る
436デフォルトの名無しさん (ワッチョイ 2b10-8HLh)
2021/10/17(日) 19:27:41.57ID:rQoWwir60437デフォルトの名無しさん (スップ Sdbf-4axQ)
2021/10/17(日) 19:29:03.49ID:QrrwaG0ad 後続の処理でworkbookオブジェクトを使わないならWithで纏めちゃうな
With Workbooks.Open("C:\Users\*****.xlsx")
.SaveAs Filename:=Namae0
.Close
End With
こんな感じで
With Workbooks.Open("C:\Users\*****.xlsx")
.SaveAs Filename:=Namae0
.Close
End With
こんな感じで
438デフォルトの名無しさん (ワッチョイ 2b10-8HLh)
2021/10/17(日) 19:31:49.54ID:rQoWwir60 >>437
一行ごとに処理書いてる感なくてスマートでええな。
一行ごとに処理書いてる感なくてスマートでええな。
439デフォルトの名無しさん (ワッチョイ bb5f-sb4T)
2021/10/17(日) 21:41:34.16ID:TEYo+ExJ0 Withは便利だけど積極的には使わない派
後で見返す時にわけわからなくなるから
後で見返す時にわけわからなくなるから
440デフォルトの名無しさん (ワッチョイ fb63-73Qd)
2021/10/17(日) 21:43:33.55ID:80TNtCCb0 ネストしたwithを見たらエディタ閉じるわ
441デフォルトの名無しさん (スップ Sdbf-ZO17)
2021/10/17(日) 21:48:12.01ID:eFAt1kMMd442デフォルトの名無しさん (ドコグロ MMcf-ORg4)
2021/10/17(日) 21:51:58.87ID:W9ZcRzM1M 扱うオブジェクトが1つならいいけど複数あったりサブルーチンに渡したりする時もあるから
443デフォルトの名無しさん (ワッチョイ ef68-VjlT)
2021/10/17(日) 22:22:04.64ID:F19IWtWk0444デフォルトの名無しさん (ワッチョイ 9f4f-/GGz)
2021/10/18(月) 00:37:42.11ID:48un5MBo0 以前VB6スレでもWith Newを使ってる人がいて論議になったことがあったね。
俺はこの方法は有りだと思う。
ひとつしか使えないけど関数やメソッドの中で唯一ひと階層下のスコープを設定出来る方法だからそれを意識した使い方なら。
ただこの方法であまり長いロジックを組むのは確かに可読性に宜しくないのも同意。
だから使いどころに気をつけながら使う方法だと思うよ。
俺はこの方法は有りだと思う。
ひとつしか使えないけど関数やメソッドの中で唯一ひと階層下のスコープを設定出来る方法だからそれを意識した使い方なら。
ただこの方法であまり長いロジックを組むのは確かに可読性に宜しくないのも同意。
だから使いどころに気をつけながら使う方法だと思うよ。
445デフォルトの名無しさん (スプッッ Sd3f-ZO17)
2021/10/18(月) 00:52:44.24ID:5AqMk2S7d オブジェクトを抱えるWithはSubやFunctionとセットで使うんだよ
1つのSubには一つのWith
それ以上になる時は機能を詰め込みすぎだから分割すべき
1つのSubには一つのWith
それ以上になる時は機能を詰め込みすぎだから分割すべき
446デフォルトの名無しさん (ワッチョイ 0fda-ZO17)
2021/10/18(月) 01:37:56.48ID:Zxhiy8zv0447デフォルトの名無しさん (ワッチョイ 9fad-gFAa)
2021/10/18(月) 07:58:42.77ID:Xmojsja+0 複数のファイルじゃなくて複数のフォルダを選択する方法はありますか?
448デフォルトの名無しさん (ドコグロ MMcf-ORg4)
2021/10/18(月) 08:17:54.78ID:iA8avgoCM449デフォルトの名無しさん (アウアウウー Sacf-8a12)
2021/10/19(火) 05:36:51.83ID:s00hPK6/a クリックする
450デフォルトの名無しさん (オッペケ Sr0f-gFAa)
2021/10/19(火) 13:51:25.65ID:DDPhMqNbr パワポもvbaで操作している人はいますか?
また手っ取り早く時短できる部分はありますか?
また手っ取り早く時短できる部分はありますか?
451デフォルトの名無しさん (ドコグロ MMcf-ORg4)
2021/10/19(火) 14:28:41.78ID:P0vvwNoGM >>450
Excel のデータを50枚ぐらいにスライドに整形して表示するって言うのをVBAでやったよ
Excel のデータを50枚ぐらいにスライドに整形して表示するって言うのをVBAでやったよ
452デフォルトの名無しさん (オッペケ Sr0f-gFAa)
2021/10/19(火) 16:06:34.91ID:DDPhMqNbr453デフォルトの名無しさん (ワッチョイ 9f4f-PJ2o)
2021/10/19(火) 16:21:20.09ID:4aO6vjST0 >>452
横槍だけどリンク先ちゃんと下まで読んだ?
横槍だけどリンク先ちゃんと下まで読んだ?
454デフォルトの名無しさん (ワッチョイ 9fe6-HhMZ)
2021/10/19(火) 16:32:01.94ID:wN2ah2c70 全くの初心者です
元エクセルファイルを、そのファイル内の特定のシートの特定のセルないの文字(名前)でフォルダを作成し(作成階層は元エクセルファイルがある場所)、そのフォルダ内にフォルダと同じ名前で元エクセルファイルを出力したいです
検索してみてそれっぽいコードを実行してみましたが上手く行かないか1004のエラーが出てしまうので、できれば教えていただきたいです
元エクセルファイルを、そのファイル内の特定のシートの特定のセルないの文字(名前)でフォルダを作成し(作成階層は元エクセルファイルがある場所)、そのフォルダ内にフォルダと同じ名前で元エクセルファイルを出力したいです
検索してみてそれっぽいコードを実行してみましたが上手く行かないか1004のエラーが出てしまうので、できれば教えていただきたいです
455デフォルトの名無しさん (ブーイモ MM7f-ZO17)
2021/10/19(火) 17:37:09.15ID:4z76YikWM >>454
まずは自分で作ったプログラムをここに貼って
まずは自分で作ったプログラムをここに貼って
456デフォルトの名無しさん (ブーイモ MM7f-W6vP)
2021/10/19(火) 17:40:33.12ID:mCqSTcWyM >>454
流石にエスパーじゃないからそれだけの情報じゃなんとも言えんが、
ファイルの指定が間違ってる可能性がありそう
エラーが出たときにデバッグってボタン押したらどんな命令文の背景が変わってる?
省略しないでその文を一字一句違わず書いてみ?
流石にエスパーじゃないからそれだけの情報じゃなんとも言えんが、
ファイルの指定が間違ってる可能性がありそう
エラーが出たときにデバッグってボタン押したらどんな命令文の背景が変わってる?
省略しないでその文を一字一句違わず書いてみ?
457デフォルトの名無しさん (ワッチョイ 2b8e-ToKj)
2021/10/19(火) 18:02:38.90ID:ukSaGu280 実行してるファイルと同じ名前はダメだろ
458デフォルトの名無しさん (ワッチョイ 5bda-ir6K)
2021/10/19(火) 20:26:31.01ID:DOUatBbL0 >>457
元のファイルがあるフォルダーのサブフォルダーに格納されるんで同じ名前でも大丈夫だよ。
元のファイルがあるフォルダーのサブフォルダーに格納されるんで同じ名前でも大丈夫だよ。
459デフォルトの名無しさん (アウアウウー Sacf-8a12)
2021/10/20(水) 00:29:04.94ID:P5tYW80ga 質問者の勘違いとエスパーしたんじゃね
460デフォルトの名無しさん (スフッ Sdbf-ZO17)
2021/10/20(水) 00:47:36.84ID:Xbyc9Pekd わたしは、エスパー
今、質問者の脳内に、直接、回答を送っています
わたしは、エスパー
今、質問者の脳内に、直接、回答を送っています
わたしは、エスパー
461デフォルトの名無しさん (スフッ Sdbf-ZO17)
2021/10/20(水) 00:49:43.99ID:Xbyc9Pekd 残念です
夜中なので、質問者は、寝てました
残念です
夜中なので、質問者は、寝てました
残念です
462デフォルトの名無しさん (ワッチョイ 9f02-Avck)
2021/10/20(水) 00:53:24.04ID:VLQwVQRS0 なぜプログラム板でExcelVBAのスレが活発なのよ?
日本終わってんな
日本終わってんな
463デフォルトの名無しさん (ワッチョイ 2b10-8HLh)
2021/10/20(水) 03:43:52.55ID:gq1XFNWx0 労働者の多くがExcel使ってんだから需要からしたら普通だろ
464デフォルトの名無しさん (ワッチョイ 9f4f-PJ2o)
2021/10/20(水) 06:13:11.55ID:RXqG14DY0 まぁ年収ランキングとしてもそこそこ高い位置にいるし当然と言えば当然だな
https://xtech.nikkei.com/atcl/nxt/column/18/01068/111100004/
https://xtech.nikkei.com/atcl/nxt/column/18/01068/111100004/
465デフォルトの名無しさん (ワッチョイ 0fda-ZO17)
2021/10/20(水) 10:35:33.40ID:Nii7YXA70 >>462
なんでRubyスレにいかないの?
なんでRubyスレにいかないの?
466デフォルトの名無しさん (スップ Sdbf-ZO17)
2021/10/20(水) 10:37:34.01ID:cqpH7rMEd プログラマーじゃない人もたくさん使ってるから
人が増えるのは必然
人が増えるのは必然
467デフォルトの名無しさん (ワッチョイ 9fe6-HhMZ)
2021/10/20(水) 17:58:56.42ID:DdoeWcxm0 >>456
https://lilia-study.com/excel/vba-sample/cellvalue-save/
Sub hozon()
Dim wb As Workbook
Dim ws As Worksheet
Dim hozonPath As String
Dim FolName As String
Dim FilName As String
Set wb = ThisWorkbook
Set ws = ActiveSheet
hozonPath = “K:\”
FolName = ws.Range(“A1”).Value
FilName = ws.Range(“A2”).Value
wb.SaveAs Filename:=hozonPath & FolName & “\” & FilName
End Sub
このvbaで
A1=A2にして、hozonPathをThisWorkbook.Pathにしたりすればできるかな?と思ったのですが上手く行かずです…
https://lilia-study.com/excel/vba-sample/cellvalue-save/
Sub hozon()
Dim wb As Workbook
Dim ws As Worksheet
Dim hozonPath As String
Dim FolName As String
Dim FilName As String
Set wb = ThisWorkbook
Set ws = ActiveSheet
hozonPath = “K:\”
FolName = ws.Range(“A1”).Value
FilName = ws.Range(“A2”).Value
wb.SaveAs Filename:=hozonPath & FolName & “\” & FilName
End Sub
このvbaで
A1=A2にして、hozonPathをThisWorkbook.Pathにしたりすればできるかな?と思ったのですが上手く行かずです…
468デフォルトの名無しさん (ブーイモ MMcf-W6vP)
2021/10/20(水) 18:30:57.52ID:3UsBchoVM ThisWorkbook.Pathにはケツの¥が付いてないから
ThisWorkbook.Path & ”¥” & FolName & “\” & FilName
に書き換えてみ
ThisWorkbook.Path & ”¥” & FolName & “\” & FilName
に書き換えてみ
469デフォルトの名無しさん (ワッチョイ 4b68-ZO17)
2021/10/20(水) 18:49:10.89ID:YqKlvam70 \
"
半角にしてね
"
半角にしてね
470デフォルトの名無しさん (ワッチョイ fb2f-4HJo)
2021/10/20(水) 20:45:15.20ID:Es2OjjC60 >>467
お前のPCにK:ドライブは存在するのか?
とりあえず
wb.SaveAs のまえに、
MsgBox hozonPath & FolName & “\” & FilName
いれて、表示された内容をかけ
個人名とか入ってたら適当に隠せよ
お前のPCにK:ドライブは存在するのか?
とりあえず
wb.SaveAs のまえに、
MsgBox hozonPath & FolName & “\” & FilName
いれて、表示された内容をかけ
個人名とか入ってたら適当に隠せよ
471デフォルトの名無しさん (ワッチョイ efda-KUiw)
2021/10/20(水) 22:22:06.11ID:mCILNp7G0 超初心者です
以下の対応をさせたいです
@シートを支店分だけ増やす
Aシート名をそれぞれ「支店一覧」A2〜A18の支店名にする
B作成したシートのB5に支店名を入れる
C作成したシートの表のA列が"0"になっている行を削除する
D作成したシートのオートフィルタを解除する
以下のものではエラーになりますが、どこが悪いのでしょうか
Sub シート作成
Dim 支店名 As Range
For Each 名前 In Worksheets("支店一覧").Range("A2:A18")
Worksheets("原本").Copy After:=Worksheets(Worksheets.Count)
With ActiveSheet
.Name = 支店名.Value
.Range("B5") = 支店名.Value
End With
Range("B3").AutoFilter 1, "0"
With Range("B3").CurrentRegion.Offset(1, 0)
.Resize(.Rows.Count - 1).EntireRow.Delete
Range("B3").AutoFilter
End With
Next 支店名
End Sub
以下の対応をさせたいです
@シートを支店分だけ増やす
Aシート名をそれぞれ「支店一覧」A2〜A18の支店名にする
B作成したシートのB5に支店名を入れる
C作成したシートの表のA列が"0"になっている行を削除する
D作成したシートのオートフィルタを解除する
以下のものではエラーになりますが、どこが悪いのでしょうか
Sub シート作成
Dim 支店名 As Range
For Each 名前 In Worksheets("支店一覧").Range("A2:A18")
Worksheets("原本").Copy After:=Worksheets(Worksheets.Count)
With ActiveSheet
.Name = 支店名.Value
.Range("B5") = 支店名.Value
End With
Range("B3").AutoFilter 1, "0"
With Range("B3").CurrentRegion.Offset(1, 0)
.Resize(.Rows.Count - 1).EntireRow.Delete
Range("B3").AutoFilter
End With
Next 支店名
End Sub
472471 (ワッチョイ efda-KUiw)
2021/10/20(水) 22:24:48.55ID:mCILNp7G0 Cは「B列が"0"になっている行を削除する」の誤りでした
473デフォルトの名無しさん (ワッチョイ ef68-KUiw)
2021/10/20(水) 22:37:03.53ID:SCNNHF4n0 とりあえずここだと思う
下の方はサンプル作ってくれれば試すけど、手元にないからよくわkらん
Sub シート作成()
For Each 支店名 In Worksheets("支店一覧").Range("A2:A18")
下の方はサンプル作ってくれれば試すけど、手元にないからよくわkらん
Sub シート作成()
For Each 支店名 In Worksheets("支店一覧").Range("A2:A18")
474471 (ワッチョイ efda-KUiw)
2021/10/20(水) 22:41:41.27ID:mCILNp7G0 >>473
大変失礼いたしました
あるページからコードをコピーしてきたときに修正し忘れました
実際は名前→支店名にしていましたが、エラーとなっていました
エラーの内容の詳細が必要でしたら、明日投稿します
(現在手元にExcelファイルがなく、すみません)
大変失礼いたしました
あるページからコードをコピーしてきたときに修正し忘れました
実際は名前→支店名にしていましたが、エラーとなっていました
エラーの内容の詳細が必要でしたら、明日投稿します
(現在手元にExcelファイルがなく、すみません)
475デフォルトの名無しさん (ワッチョイ 9f42-zMsf)
2021/10/20(水) 23:13:32.77ID:dYcbK4WK0 安心して
手元にエクセルファイルが無いのに記憶だけでそこまで書ければ超初心者じゃないよ
手元にエクセルファイルが無いのに記憶だけでそこまで書ければ超初心者じゃないよ
476デフォルトの名無しさん (ドコグロ MMcf-ORg4)
2021/10/21(木) 05:25:42.24ID:wIUVM+qQM477デフォルトの名無しさん (ワッチョイ ef68-KUiw)
2021/10/21(木) 06:18:01.89ID:8cr/BFDG0478デフォルトの名無しさん (テテンテンテン MM7f-zMsf)
2021/10/21(木) 06:54:51.77ID:MLEFHfinM Select Caseにbreakがないのは何故なんでしょうか
beakがないから最初に一致した条件以降のCaseも
実行されると勘違いしやすい
仕事で大きなトラブルを起こしてしまった…
beakがないから最初に一致した条件以降のCaseも
実行されると勘違いしやすい
仕事で大きなトラブルを起こしてしまった…
479デフォルトの名無しさん (ブーイモ MM7f-W6vP)
2021/10/21(木) 07:06:17.27ID:mcI3miqCM Select Caseって上から順に見て真っ先に当てはまったCaseのみ実行じゃなかった?違うんだっけ?
480デフォルトの名無しさん (ドコグロ MMcf-ORg4)
2021/10/21(木) 07:46:09.23ID:Ue09v+2oM >>478
> Select Caseにbreakがないのは何故なんでしょうか
そういう仕様だから
Pascal とかと同じ
> beakがないから最初に一致した条件以降のCaseも実行されると勘違いしやすい
むしろCとかでbreak忘れてトラブる奴の方が多いだろ
なのでC# はコンパイルエラーにするぐらいだし
> 仕事で大きなトラブルを起こしてしまった…
仕事で使うならちゃんとテストしろよ…
> Select Caseにbreakがないのは何故なんでしょうか
そういう仕様だから
Pascal とかと同じ
> beakがないから最初に一致した条件以降のCaseも実行されると勘違いしやすい
むしろCとかでbreak忘れてトラブる奴の方が多いだろ
なのでC# はコンパイルエラーにするぐらいだし
> 仕事で大きなトラブルを起こしてしまった…
仕事で使うならちゃんとテストしろよ…
481デフォルトの名無しさん (ワッチョイ 9f4f-PJ2o)
2021/10/21(木) 11:01:11.45ID:kxdLHT3P0482デフォルトの名無しさん (ワッチョイ 9f4f-PJ2o)
2021/10/21(木) 11:14:41.56ID:kxdLHT3P0483デフォルトの名無しさん (ワッチョイ 0fda-ZO17)
2021/10/21(木) 12:11:34.23ID:8w0PnAXQ0 select case 普通に動作するんだが、どうやったらトラブル起こせるんだ?
484デフォルトの名無しさん (ワッチョイ 9fe6-HhMZ)
2021/10/21(木) 17:55:34.88ID:88nPUo+s0485デフォルトの名無しさん (ブーイモ MM7f-W6vP)
2021/10/21(木) 18:43:47.31ID:mcI3miqCM だからhozonPathとFoINameの間に¥を入れろって
486デフォルトの名無しさん (ワッチョイ 2b8e-g8Px)
2021/10/21(木) 21:55:14.75ID:fbrP1i9b0 >>484
お前みたいな馬鹿にはVBAは無理だと思うよ
お前みたいな馬鹿にはVBAは無理だと思うよ
487デフォルトの名無しさん (ワッチョイ ef68-KUiw)
2021/10/21(木) 22:14:08.48ID:8cr/BFDG0 >>484
最強料理はケバブ
最強料理はケバブ
488デフォルトの名無しさん (ワッチョイ ef68-KUiw)
2021/10/21(木) 22:16:16.48ID:8cr/BFDG0 コピペ間違えた
>>484
wb.SaveAs Filename:=hozonPath & "\" & FolName & “\” & FilName
で
あと
FolderName
を無理に
FolName
と変に略すと、あとで何書いてるかわからなくなるぞ。
>>484
wb.SaveAs Filename:=hozonPath & "\" & FolName & “\” & FilName
で
あと
FolderName
を無理に
FolName
と変に略すと、あとで何書いてるかわからなくなるぞ。
489デフォルトの名無しさん (ワッチョイ 0f2c-4HJo)
2021/10/21(木) 23:15:26.60ID:5CobycYg0 パス区切りに、/ は使えないの?
例えば、Ruby なら、
glob_pattern = "C:/Users/Owner/Documents/*.txt"
p Dir.glob( glob_pattern )
出力
[ "C:/Users/Owner/Documents/a.txt",
"C:/Users/Owner/Documents/b.txt" ]
例えば、Ruby なら、
glob_pattern = "C:/Users/Owner/Documents/*.txt"
p Dir.glob( glob_pattern )
出力
[ "C:/Users/Owner/Documents/a.txt",
"C:/Users/Owner/Documents/b.txt" ]
490デフォルトの名無しさん (アウアウウー Sa45-/pkb)
2021/10/22(金) 00:34:42.64ID:2cM8PEAKa やってみればわかるんじゃないの?
491デフォルトの名無しさん (ワッチョイ e98e-Ti9O)
2021/10/22(金) 00:44:00.08ID:1RQkewhE0 あまりに馬鹿過ぎると思ったらやっぱりruby馬鹿か
492デフォルトの名無しさん (ワッチョイ e9d0-F3qf)
2021/10/22(金) 00:46:54.73ID:5YslU4UB0 >>484
何をやりたいのかよくわからんけど、連続して2回以上実行すると、実行回数分のネストしたフォルダが必要になるのでエラー吐く。
あと、コピー先のフォルダ/ファイル名はActiveSheetを参照しているので、複数ブック開いていたりするとおかしなことになる。
何をやりたいのかよくわからんけど、連続して2回以上実行すると、実行回数分のネストしたフォルダが必要になるのでエラー吐く。
あと、コピー先のフォルダ/ファイル名はActiveSheetを参照しているので、複数ブック開いていたりするとおかしなことになる。
493デフォルトの名無しさん (ワッチョイ 3901-zxp6)
2021/10/22(金) 01:17:15.93ID:MBOrFbAX0 >>484
保存先のフォルダがないとそのエラーになるから、wb.SaveAsの直前にその確認を入れる
↓で動いたの確認した
'※hozonPathはあるのか
Dim ExistHozonPath As Boolean
ExistHozonPath = Len(Dir(hozonPath, vbDirectory))
If Not ExistHozonPath Then MsgBox hozonPath & "ドライブは存在しません。"
'※FolNameはあるのか
Dim FolFullName As String, ExistFol As Boolean
FolFullName = hozonPath & FolName
ExistFol = Len(Dir(FolFullName, vbDirectory))
If Not ExistFol Then
Dim Question As String
Question = "「" & FolFullName & "」フォルダが存在しません。作成しますか?"
Select Case MsgBox(Question, vbYesNo)
Case vbYes 'はい→作る
MkDir FolFullName
Case vbNo 'いいえ→終了
Exit Sub
End Select
End If
wb.SaveAs Filename:=hozonPath & FolName & "\" & FilName
保存先のフォルダがないとそのエラーになるから、wb.SaveAsの直前にその確認を入れる
↓で動いたの確認した
'※hozonPathはあるのか
Dim ExistHozonPath As Boolean
ExistHozonPath = Len(Dir(hozonPath, vbDirectory))
If Not ExistHozonPath Then MsgBox hozonPath & "ドライブは存在しません。"
'※FolNameはあるのか
Dim FolFullName As String, ExistFol As Boolean
FolFullName = hozonPath & FolName
ExistFol = Len(Dir(FolFullName, vbDirectory))
If Not ExistFol Then
Dim Question As String
Question = "「" & FolFullName & "」フォルダが存在しません。作成しますか?"
Select Case MsgBox(Question, vbYesNo)
Case vbYes 'はい→作る
MkDir FolFullName
Case vbNo 'いいえ→終了
Exit Sub
End Select
End If
wb.SaveAs Filename:=hozonPath & FolName & "\" & FilName
494デフォルトの名無しさん (ワッチョイ 3901-zxp6)
2021/10/22(金) 01:25:21.34ID:MBOrFbAX0 >>493
ドライブない時に終了させるの忘れてた
ドライブない時に終了させるの忘れてた
495デフォルトの名無しさん (アウアウウー Sa45-JHou)
2021/10/22(金) 07:57:46.72ID:uyzrt+dja ユーザーフォーム自体(コードではなくてボタンとかが表示されている方)を印刷する時、
デフォルトで用紙が縦になるんですが、横に出力する方法はないでしょうか?
デフォルトで用紙が縦になるんですが、横に出力する方法はないでしょうか?
496デフォルトの名無しさん (ワッチョイ 05e5-NSZO)
2021/10/22(金) 09:34:10.25ID:EjatPKif0 >>495
Windowsの設定(コンパネ)のプリンタで用紙設定しておく
Windowsの設定(コンパネ)のプリンタで用紙設定しておく
497デフォルトの名無しさん (アウアウウー Sa45-JHou)
2021/10/22(金) 12:17:25.64ID:uyzrt+dja あー、あの縦か横かをオプションボタンで選ぶ画面ですね。
VBA以前の問題でした。失礼しました。
帰宅したら試します。
VBA以前の問題でした。失礼しました。
帰宅したら試します。
498デフォルトの名無しさん (アウアウウー Sa45-Iznz)
2021/10/22(金) 19:20:10.02ID:eWxCtPi7a 横1列に並んだセルを
A B C D E F
1 あああ いいい ううう 阿嗚呼 伊井伊 雨右鵜
2 かかか ききき くくく 可化歌 機器機 久々九
3
↓
A B C
1 あああ いいい ううう
2 阿嗚呼 伊井伊 雨右鵜
3 かかか ききき くくく
4 可化歌 機器機 久々九
のように1行飛びに成形するにはどうしたら良いですか?
A B C D E F
1 あああ いいい ううう 阿嗚呼 伊井伊 雨右鵜
2 かかか ききき くくく 可化歌 機器機 久々九
3
↓
A B C
1 あああ いいい ううう
2 阿嗚呼 伊井伊 雨右鵜
3 かかか ききき くくく
4 可化歌 機器機 久々九
のように1行飛びに成形するにはどうしたら良いですか?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- JA全農が「新おこめ券」…来年9月末の有効期限を新設、必要経費のみ上乗せ [蚤の市★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- 「働いて働いて」の流行語大賞に懸念 「言葉が独り歩き」 過労自殺遺族 [尺アジ★]
- 車のボンネットに乗せて走行し振り落とした殺人未遂容疑で逮捕 中国籍のタクシー運転手を不起訴処分 [七波羅探題★]
- ゆたぼん 二重手術を報告「めちゃくちゃ気に入っています」 [muffin★]
- 国民 居住目的でない住宅所有者に「空室税」課せる法案を提出 ★3 [少考さん★]
- 【実況】博衣こよりのえちえちダンガンロンパ2🧪★2
- 【実況】博衣こよりのえちえちダンガンロンパ2🧪★3
- 木曜日のんなっしょい❗(・o・🍬)仕放題スレ🏡
- 官僚「台湾有事についての質問か、『政府として逐一答えない』と…(カタカタカタ)」高市「私1人で答弁できるわよ!」 [972432215]
- 🏡
- 【悲報】高市早苗、被災民に対し「自分の命くらいは自分で守ってくださいね」と切り捨てし大炎上 [339712612]
