!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑同じ内容を3行貼り付けること
ExcelのVBAに関する質問スレ
コード書き込みや作成依頼もOK
次スレは>>980が立てること
無理なら細かく安価指定
※前スレ
Excel VBA 質問スレ Part77
https://mevius.5ch.net/test/read.cgi/tech/1658009255/
-
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
Excel VBA 質問スレ Part78
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 5f2e-juJ7)
2022/10/30(日) 13:43:16.31ID:6yf2E1Gz0301デフォルトの名無しさん (ワッチョイ 7cda-9BiN)
2022/12/06(火) 13:28:57.18ID:/P6wRT1K0 つかVBAで関数使えるなんて最近知ったわ
302デフォルトの名無しさん (ブーイモ MMba-5Y9H)
2022/12/06(火) 13:35:48.17ID:41AW+NFUM >>301
お馬鹿自慢要らない
お馬鹿自慢要らない
303デフォルトの名無しさん (ワッチョイ 2cda-WJTY)
2022/12/06(火) 18:35:08.85ID:+0skKz+k0 どんな機能も馬鹿には使えない
304デフォルトの名無しさん (JP 0H06-4FAg)
2022/12/06(火) 22:10:52.72ID:0FDDxcj9H305デフォルトの名無しさん (ワッチョイ acce-R4o2)
2022/12/06(火) 23:34:20.45ID:HLCihNOZ0 2行目がひどすぎる
306デフォルトの名無しさん (ワッチョイ 7cda-9BiN)
2022/12/07(水) 01:18:20.40ID:X43S603Q0 なにが?
307デフォルトの名無しさん (JP 0H88-7kHv)
2022/12/07(水) 07:13:11.50ID:FarCeGHLH 演算処理能力、メモリ容量、基盤の伝送量と速度が大幅に向上し
組み込み関数による処理、VBA関数による処理などの差によるメモリ効率、処理速度を考えず
組み込み関数に依存しないコーディングを書けるようになった
言い換えると3行になるな
メモリ効率を悪化させてしまった
組み込み関数による処理、VBA関数による処理などの差によるメモリ効率、処理速度を考えず
組み込み関数に依存しないコーディングを書けるようになった
言い換えると3行になるな
メモリ効率を悪化させてしまった
308デフォルトの名無しさん (スップ Sd9e-4FAg)
2022/12/07(水) 11:24:59.17ID:D8w4iSDKd >>304
関数が入っているセルを参照するようなコードの場合
例えばCells(4, 3)にCells(3, 3)の値を10倍するような関数が入っているとして
Cells(3, 3).Value = 40
Debug.Print Cells(4, 3).Value
とやった場合、自動になっていればCells(4, 3)は400になった値が参照できて
手動ならもともと入っている値が参照できるという状態でしょ
スペックが向上、負荷のないコードだから書かないというのは危険な考えでは
関数が入っているセルを参照するようなコードの場合
例えばCells(4, 3)にCells(3, 3)の値を10倍するような関数が入っているとして
Cells(3, 3).Value = 40
Debug.Print Cells(4, 3).Value
とやった場合、自動になっていればCells(4, 3)は400になった値が参照できて
手動ならもともと入っている値が参照できるという状態でしょ
スペックが向上、負荷のないコードだから書かないというのは危険な考えでは
309デフォルトの名無しさん (JP 0H06-4FAg)
2022/12/07(水) 11:32:32.02ID:utJNEW7kH >>308
再計算に左右されるコードを書く事がそもそもおかしいんですわ
再計算に左右されるコードを書く事がそもそもおかしいんですわ
310デフォルトの名無しさん (アウアウクー MMd2-M9qo)
2022/12/07(水) 12:12:32.61ID:LcpUtl7xM 配列がらみのFunctionを作ったときにメモリを空けようと「一時的な配列」を初期化しているのだけれどもしかしてあんまり意味ない?
たとえばこのように↓
Function 戻り値配列 (引数)As Variant
Dim TempArr As Variant
(……何らかの処理)
戻り値配列 = TempArr
Erase TempArr ← これ
End Function
同じ要領で“TempDic”をRemove allしたら戻り値の連想配列も空になっちゃったけどこれはなんでなんだろう
たとえばこのように↓
Function 戻り値配列 (引数)As Variant
Dim TempArr As Variant
(……何らかの処理)
戻り値配列 = TempArr
Erase TempArr ← これ
End Function
同じ要領で“TempDic”をRemove allしたら戻り値の連想配列も空になっちゃったけどこれはなんでなんだろう
311デフォルトの名無しさん (JP 0H06-4FAg)
2022/12/07(水) 12:16:33.70ID:utJNEW7kH312デフォルトの名無しさん (スップ Sd9e-4FAg)
2022/12/07(水) 12:21:53.20ID:D8w4iSDKd313デフォルトの名無しさん (ワッチョイ 7df0-7kHv)
2022/12/07(水) 13:54:56.12ID:wBRRjjXH0 >>312
vbaって配列の要素に変数を入れ込んでから配列を初期化すると、
要素変数への参照は切れるけれどメモリ領域は解放されないのでは?
それともvbaって配列要素への参照切れで割りあてたメモリを開放するの?
vbaって配列の要素に変数を入れ込んでから配列を初期化すると、
要素変数への参照は切れるけれどメモリ領域は解放されないのでは?
それともvbaって配列要素への参照切れで割りあてたメモリを開放するの?
314デフォルトの名無しさん (ラクッペペ MM34-EnYx)
2022/12/07(水) 14:42:43.86ID:snBsCL7QM 調べてから質問しよう
315デフォルトの名無しさん (アウアウエー Sa6a-M9qo)
2022/12/07(水) 15:06:50.61ID:y9uo2cdUa とりあえず「Erase」を書くのはあんまり意味無いっぽいんでやめます
316デフォルトの名無しさん (JP 0H06-4FAg)
2022/12/07(水) 18:33:11.05ID:utJNEW7kH >>312
といいつつなにも訂正できないアホ
といいつつなにも訂正できないアホ
317デフォルトの名無しさん (アウアウウー Sab5-QZbE)
2022/12/07(水) 18:52:51.37ID:CifLjB7Ga >>310
> 同じ要領で“TempDic”をRemove allしたら戻り値の連想配列も空になっちゃったけどこれはなんでなんだろう
そりゃ参照を返してるだけで実体は一個しかないからRemoveAllしたら消えるよ
その後 TempDic を使わない事を明示したいなら
Set TempDic = Nothing
でもしとけばいいけどまあ関数抜けたら TempDic はなくなっちゃうんだから気にしなくていいと思うよ
> 同じ要領で“TempDic”をRemove allしたら戻り値の連想配列も空になっちゃったけどこれはなんでなんだろう
そりゃ参照を返してるだけで実体は一個しかないからRemoveAllしたら消えるよ
その後 TempDic を使わない事を明示したいなら
Set TempDic = Nothing
でもしとけばいいけどまあ関数抜けたら TempDic はなくなっちゃうんだから気にしなくていいと思うよ
318デフォルトの名無しさん (ワッチョイ aa19-vo7k)
2022/12/08(木) 00:25:28.15ID:+1lRH4XG0 まぁでも関数やメソッド抜けるまでは保持し続けるから単一責任原則を守ったコードに慣れるまでは
使い終わったらさっさと解放することに越したことはないよ。
最近当たったんだけどボタンを押して呼んだ関数の中で数万のインスタンスを生成する処理があって、
完了メッセージを出した後もその関数抜けるときにメモリを解放しているもんだから暫く待たされるという残念なコードを見てる。
生成した後のごちゃごちゃした処理は別関数でやってたのに実に残念なツールになってたよ。
使い終わったらさっさと解放することに越したことはないよ。
最近当たったんだけどボタンを押して呼んだ関数の中で数万のインスタンスを生成する処理があって、
完了メッセージを出した後もその関数抜けるときにメモリを解放しているもんだから暫く待たされるという残念なコードを見てる。
生成した後のごちゃごちゃした処理は別関数でやってたのに実に残念なツールになってたよ。
319デフォルトの名無しさん (アウアウウー Sab5-nfFp)
2022/12/08(木) 01:16:01.92ID:WwdCwmmca 意識高い系のVBA使いとか生きるの辛そうだな
プログラミング界ではそもそもVBAな時点でみんな半端者扱いなんだから気楽にやろうぜ
プログラミング界ではそもそもVBAな時点でみんな半端者扱いなんだから気楽にやろうぜ
320デフォルトの名無しさん (ワッチョイ 0101-9CiQ)
2022/12/08(木) 02:22:15.27ID:tbk78NJr0 vbaを使ってて0.01秒早くしてどうすんだ?って思うときはある
321デフォルトの名無しさん (ワッチョイ aa01-QZbE)
2022/12/08(木) 06:20:02.03ID:lmp5fbT90 >>318
> まぁでも関数やメソッド抜けるまでは保持し続けるから単一責任原則を守ったコードに慣れるまでは
> 使い終わったらさっさと解放することに越したことはないよ。
呼び出し元に返す話に何を言ってるんだ?
> まぁでも関数やメソッド抜けるまでは保持し続けるから単一責任原則を守ったコードに慣れるまでは
> 使い終わったらさっさと解放することに越したことはないよ。
呼び出し元に返す話に何を言ってるんだ?
322デフォルトの名無しさん (JP 0H88-7kHv)
2022/12/08(木) 07:04:26.73ID:HFBnNvT0H ならやっぱり配列要素がプリミティブでなければ
要素そのものを解放しないと
配列だけ初期化する意味なんてあるの?
要素そのものを解放しないと
配列だけ初期化する意味なんてあるの?
323デフォルトの名無しさん (JP 0H88-7kHv)
2022/12/08(木) 07:26:25.62ID:HFBnNvT0H というか、vbaには参照切れで自動的にメモリ開放する機能がないってことなのか
324デフォルトの名無しさん (ワッチョイ aa19-vo7k)
2022/12/08(木) 08:07:05.00ID:+1lRH4XG0 >>322
例えば配列にループしてインスタンスを設定するとして、そのループの中でひとつの変数にNewしてインスタンスを作成して、
そのインスタンスを配列に設定した場合、前回のループで設定したインスタンスは配列の内容が削除されれば、他に参照しているところがない限りメモリから解放されるよ。
例えば配列にループしてインスタンスを設定するとして、そのループの中でひとつの変数にNewしてインスタンスを作成して、
そのインスタンスを配列に設定した場合、前回のループで設定したインスタンスは配列の内容が削除されれば、他に参照しているところがない限りメモリから解放されるよ。
325デフォルトの名無しさん (JP 0H06-4FAg)
2022/12/08(木) 08:35:17.09ID:yLcZaBdRH326デフォルトの名無しさん (アウアウウー Sab5-QZbE)
2022/12/08(木) 10:09:55.21ID:JnPWza2ja327デフォルトの名無しさん (ラクッペペ MM34-EnYx)
2022/12/08(木) 10:17:37.27ID:owyQh2KqM >>326
仕様ですが何か?
仕様ですが何か?
328デフォルトの名無しさん (ワッチョイ 7df0-7kHv)
2022/12/08(木) 10:23:17.17ID:ch+LF4H/0 配列の話じゃなかったんですね、すみません
329デフォルトの名無しさん (ラクッペペ MM34-EnYx)
2022/12/08(木) 10:27:25.77ID:owyQh2KqM よく見たら >>317 で解決済みじゃんか
330デフォルトの名無しさん (ワッチョイ aa19-vo7k)
2022/12/08(木) 12:32:14.89ID:+1lRH4XG0331326 (ワッチョイ 7274-JnHA)
2022/12/08(木) 14:20:26.49ID:65k1Y+1Y0332デフォルトの名無しさん (ワッチョイ 7cda-9BiN)
2022/12/08(木) 17:59:48.27ID:sOdFjo8m0 またヘアの話してる。。
ヘア話好きだなぁお前ら
ヘア話好きだなぁお前ら
333デフォルトの名無しさん (ワッチョイ 70da-sbuD)
2022/12/09(金) 01:27:21.92ID:hGMGk7SH0 クエリA
UNION ALL
クエリB
→文字化け
クエリB
UNION ALL
クエリA
→正常
なんでやねん!
何で上下入れ替えると直る?
因みに、文字化けする方も文字列型にすると化けないので、
文字コードの問題ではない。
UNION ALL
クエリB
→文字化け
クエリB
UNION ALL
クエリA
→正常
なんでやねん!
何で上下入れ替えると直る?
因みに、文字化けする方も文字列型にすると化けないので、
文字コードの問題ではない。
334デフォルトの名無しさん (アウアウウー Sa3a-zfUU)
2022/12/09(金) 02:00:05.39ID:6OFfyKzYa コードだせよ
335デフォルトの名無しさん (ワッチョイ 7cda-9BiN)
2022/12/09(金) 02:12:16.40ID:Uc0MJbfu0 毛出せよ
336デフォルトの名無しさん (ワッチョイ 0a19-vo7k)
2022/12/09(金) 04:09:12.16ID:u4+GnlEA0 >>333
何に大してSQL投げてる?
何に大してSQL投げてる?
337デフォルトの名無しさん (JP 0H88-7kHv)
2022/12/09(金) 07:02:42.07ID:KfOH1QpXH 神様皆様おはようございます
神様たちのお導きで50万行*80列のデータから
所望のデータを抽出できました
ありがとうございました!
神様たちのお導きで50万行*80列のデータから
所望のデータを抽出できました
ありがとうございました!
338デフォルトの名無しさん (クスマテ MM6e-rZer)
2022/12/09(金) 13:09:40.12ID:rQKM0wa8M OneDriveで自動保存設定してるブックに手動保存するときだけbeforesaveイベントする方法はある?
339デフォルトの名無しさん (ワッチョイ dfda-fmpo)
2022/12/10(土) 04:11:06.01ID:sYCK+UIk0340デフォルトの名無しさん (ワッチョイ bf19-TX1J)
2022/12/10(土) 07:54:03.42ID:07zUVtVr0 >>339
SELECT句の中にアスタリスク使ってない?
UNION句で挙動がおかしくなるのはCSVファイルじゃなくてEXCELのシートにSQL投げたときに起こるのも見たことあるけど
まぁそもそもDBに投げてる訳じゃないからある程度は仕方ないってところもあるよ。
CSVファイルはUTF-8かSJISかってのもあるけど
UNION句の上下入れ替えたら直ったというのであれば今回は関係なさそうだしね。
SELECT句の中にアスタリスク使ってない?
UNION句で挙動がおかしくなるのはCSVファイルじゃなくてEXCELのシートにSQL投げたときに起こるのも見たことあるけど
まぁそもそもDBに投げてる訳じゃないからある程度は仕方ないってところもあるよ。
CSVファイルはUTF-8かSJISかってのもあるけど
UNION句の上下入れ替えたら直ったというのであれば今回は関係なさそうだしね。
341デフォルトの名無しさん (ワッチョイ dfda-fmpo)
2022/12/11(日) 02:40:17.51ID:08xatqWx0342デフォルトの名無しさん (アウアウウー Sa6b-UXa/)
2022/12/11(日) 02:50:20.80ID:z4dJXl08a あすたのリスクに備えよう
343デフォルトの名無しさん (ワッチョイ e7da-V/kh)
2022/12/11(日) 04:50:30.55ID:fs20dDlo0 いつまで起きている?
344デフォルトの名無しさん (ワッチョイ 87c6-BsWY)
2022/12/11(日) 12:55:57.38ID:GglWfKZ40 >>338
Ruby on Rails では、before_action, after_action, around_action で、コールバックできる
before_save :a, only: [:new :edit]
after_save :b, except: [:new :edit]
onlyで、new, editが呼ばれる前にだけ、aを実行する。
逆にexceptでは、new, editが呼ばれなかった後にだけ、bを実行する
Ruby on Rails では、before_action, after_action, around_action で、コールバックできる
before_save :a, only: [:new :edit]
after_save :b, except: [:new :edit]
onlyで、new, editが呼ばれる前にだけ、aを実行する。
逆にexceptでは、new, editが呼ばれなかった後にだけ、bを実行する
345デフォルトの名無しさん (ワッチョイ bf19-TX1J)
2022/12/11(日) 14:15:24.03ID:6rsOUIlG0 >>344
布教活動大変だね
布教活動大変だね
346デフォルトの名無しさん (JP 0Hcf-KKgq)
2022/12/11(日) 16:42:01.94ID:pyId0WeJH347デフォルトの名無しさん (ワッチョイ e7da-V/kh)
2022/12/11(日) 20:21:22.99ID:fs20dDlo0 Ruby信者ってどこにでも沸くな
348デフォルトの名無しさん (ワッチョイ 47ba-tIJK)
2022/12/11(日) 23:36:23.53ID:jy7H3fIV0 サーバーにあるフォルダからPDFを検索したいのに上手くいかない
検索はかけても何もヒットしない…
どこか修正するとこありますか?
テキストボックスに入力して検索
検索結果をリストボックスに表示します
Private Sub CommandButton1_Click()
Const BASE_PATH = "\\L\設計\図面"
Dim myPath As String, myName As String
Dim FSO As Object, oFolder As Object, oSubFolder As Object, oFile As Object
On Error Resume Next
If TextBox1.Value = ""Then Exit Sub
ListBox1.Clear
Set FSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = FSO.GetFolder(BASE_PATH)
For Each oSubFolder In oFolder.SubFolders
For Each oFile In oSubFolder.Files
If LCase(oFile.Name) Like LCase(TextBox1.Value) &"*.pdf"Then
Debug.Print oFile.Path
myPath = oFile.ParentFolder &"\"myName = oFile.Name
ListBox1.AddItem myName
ListBox1.List(ListBox1.ListCount - 1, 1) = myPath
End If
Next
Next
Set FSO = Nothing
End Sub
検索はかけても何もヒットしない…
どこか修正するとこありますか?
テキストボックスに入力して検索
検索結果をリストボックスに表示します
Private Sub CommandButton1_Click()
Const BASE_PATH = "\\L\設計\図面"
Dim myPath As String, myName As String
Dim FSO As Object, oFolder As Object, oSubFolder As Object, oFile As Object
On Error Resume Next
If TextBox1.Value = ""Then Exit Sub
ListBox1.Clear
Set FSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = FSO.GetFolder(BASE_PATH)
For Each oSubFolder In oFolder.SubFolders
For Each oFile In oSubFolder.Files
If LCase(oFile.Name) Like LCase(TextBox1.Value) &"*.pdf"Then
Debug.Print oFile.Path
myPath = oFile.ParentFolder &"\"myName = oFile.Name
ListBox1.AddItem myName
ListBox1.List(ListBox1.ListCount - 1, 1) = myPath
End If
Next
Next
Set FSO = Nothing
End Sub
349デフォルトの名無しさん (スプッッ Sdff-BgjO)
2022/12/12(月) 00:49:34.01ID:GzIbQG1id if文の文字列比較条件でワイルドカードが使えたらいいよね
350デフォルトの名無しさん (ワッチョイ 7f8e-BgjO)
2022/12/12(月) 00:53:47.45ID:b3Hc3KE20 あ、vbaか
すまん
すまん
351デフォルトの名無しさん (ワッチョイ e7da-V/kh)
2022/12/12(月) 01:42:01.46ID:4xXIhKks0 読めん
字下げから始めた方がミス探しやすいはず
字下げから始めた方がミス探しやすいはず
352デフォルトの名無しさん (ワッチョイ bf8c-9pmv)
2022/12/12(月) 02:19:04.59ID:hdNfjLFm0 >>348
とりあえずデバッガーした結果をクレ
とりあえずデバッガーした結果をクレ
353デフォルトの名無しさん (ワッチョイ df01-0RkQ)
2022/12/12(月) 05:04:18.82ID:x7256VzD0 >>348
とりあえず
For Each oFile In oSubFolder.Files
Debug.Print "Debug:" "& oFile.Name
If LCase(oFile.Name) Like LCase(TextBox1.Value) &"*.pdf"Then
としてまずファイルがあるのか確認しなよ
あとデバッグ中は
On Error Resume Next
をコメントアウトしといた方がいい
予想外のエラーを握り潰されて(当人にとっては)意味不明な挙動になることあるから
とりあえず
For Each oFile In oSubFolder.Files
Debug.Print "Debug:" "& oFile.Name
If LCase(oFile.Name) Like LCase(TextBox1.Value) &"*.pdf"Then
としてまずファイルがあるのか確認しなよ
あとデバッグ中は
On Error Resume Next
をコメントアウトしといた方がいい
予想外のエラーを握り潰されて(当人にとっては)意味不明な挙動になることあるから
354デフォルトの名無しさん (ブーイモ MM8f-qe51)
2022/12/12(月) 08:24:42.26ID:lSQJahkmM >>349
正規表現あるやろ
正規表現あるやろ
355デフォルトの名無しさん (アウアウエー Sa9f-arOL)
2022/12/12(月) 14:02:36.57ID:Yr5sVjH4a 請求書の原紙となるsheetをコピーして、そこに配列に格納した請求情報を貼り付けるという作業を約100回繰り返したいのですが、
①先に約100回のsheetのコピーを済ませて、生成されたsheets間をループして請求情報を貼り付ける
②sheetのコピー→請求情報の貼付けを約100回ループする
どちらの処理が早いのでしょうか
①先に約100回のsheetのコピーを済ませて、生成されたsheets間をループして請求情報を貼り付ける
②sheetのコピー→請求情報の貼付けを約100回ループする
どちらの処理が早いのでしょうか
356デフォルトの名無しさん (ワッチョイ df42-lPHY)
2022/12/12(月) 14:07:14.79ID:DRicYWUJ0 100回程度ならどっちでも体感の差はないと思う
357デフォルトの名無しさん (アウアウウー Sa6b-ROsr)
2022/12/12(月) 16:22:37.21ID:r3Uma5Xoa シートがクソ重かったりPCがクソ貧弱だったりするなら、
②の方がブックが小さい状態で貼り付けの処理ができるから安定して動くだろうね
②の方がブックが小さい状態で貼り付けの処理ができるから安定して動くだろうね
358デフォルトの名無しさん (アウアウエー Sa9f-arOL)
2022/12/12(月) 17:07:21.38ID:1yb84Oz2a >>357
後にまとめて印刷して突き合わせを行うため、請求書のシートの順番を配列の要素の順番と同じようにしなければなりません
よって②の場合は、配列の値を貼り付けた後に(配列の添字が 1 から始まるため) “Copy After := Worksheets( i )” を記述することになります
つまりシートをコピーする度にシート数をループ変数から取得する処理の繰り返しになるのですが(①だと “Copy After := Worksheets( 1 )” でもよい)、それでも②の方が安定しているのでしょうか
後にまとめて印刷して突き合わせを行うため、請求書のシートの順番を配列の要素の順番と同じようにしなければなりません
よって②の場合は、配列の値を貼り付けた後に(配列の添字が 1 から始まるため) “Copy After := Worksheets( i )” を記述することになります
つまりシートをコピーする度にシート数をループ変数から取得する処理の繰り返しになるのですが(①だと “Copy After := Worksheets( 1 )” でもよい)、それでも②の方が安定しているのでしょうか
359デフォルトの名無しさん (アウアウエー Sa9f-arOL)
2022/12/12(月) 17:09:47.10ID:1yb84Oz2a >>358
シート数を→シート番号を
シート数を→シート番号を
360デフォルトの名無しさん (ワッチョイ 7fda-UXa/)
2022/12/12(月) 17:26:03.86ID:8QT34TfC0 請求書ってそんな適当に作ったマクロで請求していいものなのか
361デフォルトの名無しさん (アウアウエー Sa9f-arOL)
2022/12/12(月) 17:30:19.83ID:1yb84Oz2a >>360
私がマクロを作る前は手書きで請求書を書いてエクセルに抽出した請求データと目視で突合していたんですよ(現在は自作した請求書を自動発行するマクロをスピードアップを目的に改修しているところです)
そういう会社もあるんです
私がマクロを作る前は手書きで請求書を書いてエクセルに抽出した請求データと目視で突合していたんですよ(現在は自作した請求書を自動発行するマクロをスピードアップを目的に改修しているところです)
そういう会社もあるんです
362デフォルトの名無しさん (スップ Sd7f-KKgq)
2022/12/12(月) 18:07:39.61ID:UCyWy/zwd iはWorksheets.Countあたりを使えばいいんじゃないの?
ただ100件程度なんてせいぜい数分でしょ
今までの時間に比べたらどっちでもいいんじゃないの
ただ100件程度なんてせいぜい数分でしょ
今までの時間に比べたらどっちでもいいんじゃないの
363デフォルトの名無しさん (スップ Sd7f-KKgq)
2022/12/12(月) 18:13:02.49ID:UCyWy/zwd ただそういうモノづくりをしてる自分からしたら
かりにある得意先の請求書のみ間違えていて修正したい場合①②どちらも最初から作り直すような感じに見えるけど
そうすると他の請求書にも影響あたえるような作りに見えるんだよね
なのでそういうのを作る場合は得意先コード的なものを最初に指定してその範囲の請求書を作る
かりに修正したい得意先があればそれだけを指定すればいいみたいな作りにするけどね
かりにある得意先の請求書のみ間違えていて修正したい場合①②どちらも最初から作り直すような感じに見えるけど
そうすると他の請求書にも影響あたえるような作りに見えるんだよね
なのでそういうのを作る場合は得意先コード的なものを最初に指定してその範囲の請求書を作る
かりに修正したい得意先があればそれだけを指定すればいいみたいな作りにするけどね
364デフォルトの名無しさん (アウアウエー Sa9f-arOL)
2022/12/12(月) 18:21:55.06ID:1yb84Oz2a365デフォルトの名無しさん (スップ Sd7f-KKgq)
2022/12/12(月) 18:35:02.38ID:UCyWy/zwd それならまずシートを100作るだけのコード書いて試せば済むことじゃないの?
よくわからないけど通常と指定可能な請求書作成が別のコードになってるんだとするとメンテのコストが2倍になるのかなと思わなくもないね
まあ他人の作るものだから余計なお世話だけどね
よくわからないけど通常と指定可能な請求書作成が別のコードになってるんだとするとメンテのコストが2倍になるのかなと思わなくもないね
まあ他人の作るものだから余計なお世話だけどね
366デフォルトの名無しさん (アウアウエー Sa9f-arOL)
2022/12/12(月) 18:40:55.92ID:1yb84Oz2a >>365
確かに自分で三通りの方法をテストしてみれば済む話なんですが、もしかして私が挙げた処理はよくあるパターンであって一般解が確立されているのかなと思い、質問させていただきました
確かに自分で三通りの方法をテストしてみれば済む話なんですが、もしかして私が挙げた処理はよくあるパターンであって一般解が確立されているのかなと思い、質問させていただきました
367デフォルトの名無しさん (ワッチョイ 273a-IK68)
2022/12/12(月) 20:57:08.22ID:Av/AuTTr0 たかが100回で差が出るわけ無いじゃんというレス付いてるだろ
それが一般解
それが一般解
368デフォルトの名無しさん (ワッチョイ dfc7-B8iQ)
2022/12/13(火) 08:18:42.44ID:j7P7/vOd0 >>348
If LCase(oFile.Name) Like LCase(TextBox1.Value)&"*.pdf" Then
この部分、頭にもアスタリスクをつけてみたら?
If LCase(oFile.Name) Like “*”&LCase(TextBox1.Value)&"*.pdf" Then
If LCase(oFile.Name) Like LCase(TextBox1.Value)&"*.pdf" Then
この部分、頭にもアスタリスクをつけてみたら?
If LCase(oFile.Name) Like “*”&LCase(TextBox1.Value)&"*.pdf" Then
369デフォルトの名無しさん (オッペケ Sr1b-OgJl)
2022/12/13(火) 09:09:12.15ID:EeVlUt2Pr 100回やって差なんか0.1秒もないだろ
その0.1秒を縮めるのに何分無駄にしてんだよ
どっちでもいいような事に無駄に時間を費やすのは無能のやることだぞ
その0.1秒を縮めるのに何分無駄にしてんだよ
どっちでもいいような事に無駄に時間を費やすのは無能のやることだぞ
370デフォルトの名無しさん (ワッチョイ df7c-qe51)
2022/12/13(火) 11:03:24.68ID:hJPKsYSy0 >>369
スレ読んで書き込むのに何分使ったの?
スレ読んで書き込むのに何分使ったの?
371デフォルトの名無しさん (JP 0Hcf-KKgq)
2022/12/13(火) 12:21:04.99ID:vd/+mp7xH リファクタリングの基準ってどれぐらい?
さすがに30分は当然なにかしらすると思うけど、
30秒ぐらいってどうするもんだろう。頑張って最適化するか、それとも待つか
さすがに30分は当然なにかしらすると思うけど、
30秒ぐらいってどうするもんだろう。頑張って最適化するか、それとも待つか
372デフォルトの名無しさん (ラクッペペ MM8f-IK68)
2022/12/13(火) 12:35:32.21ID:VHMxVebWM アンケート禁止にしないか?
集計できるほど人いないし
集計できるほど人いないし
373デフォルトの名無しさん (ワッチョイ 87ce-FUlb)
2022/12/13(火) 12:37:28.28ID:Z1nZTnw+0 >>371
賛否両論あって結論は出ていない
賛否両論あって結論は出ていない
374デフォルトの名無しさん (スップ Sd7f-KKgq)
2022/12/13(火) 15:11:59.28ID:hrptArbOd 自社の開発時のルールで決めてるんじゃないの?
適当ですとかならいい会社だね
単なるツールなら適当でいいんじゃない
適当ですとかならいい会社だね
単なるツールなら適当でいいんじゃない
375デフォルトの名無しさん (ワッチョイ df7c-qe51)
2022/12/13(火) 15:42:35.91ID:hJPKsYSy0 みんなプロなのか
私的に使ってる俺は処理が長いと感じたときとか、作って眺めたコードがクソ汚いかったときとかにする
私的に使ってる俺は処理が長いと感じたときとか、作って眺めたコードがクソ汚いかったときとかにする
376デフォルトの名無しさん (JP 0Hcf-KKgq)
2022/12/13(火) 18:38:15.19ID:vd/+mp7xH377デフォルトの名無しさん (ワッチョイ e7da-V/kh)
2022/12/13(火) 18:49:33.01ID:HC35XA+E0378デフォルトの名無しさん (ラクッペペ MM8f-IK68)
2022/12/14(水) 10:41:10.18ID:AqNC6do0M アンケート結果発表!
シラネーヨ 100%
シラネーヨ 100%
379デフォルトの名無しさん (ワッチョイ 6763-c6vA)
2022/12/14(水) 15:11:34.58ID:ntQYo9CS0 Excel VBAの本職ってなんだろう
380デフォルトの名無しさん (ワッチョイ 7fda-KKgq)
2022/12/14(水) 15:24:19.30ID:tcCDU8ws0 Excel VBAを「教える人」どまりかと
381デフォルトの名無しさん (ワッチョイ 472b-3TNT)
2022/12/14(水) 17:28:34.10ID:zpvPwogV0 ソートがうまくいきません。
今まで下のコードでちゃんとソートできていたのですが、別のブックで同じコードを使ってもソートしてくれません。
原因がわかる方いらしたら教えてください。
Call Range(Cells(i, 1), Cells(i, 6)).Sort(Cells(i, 1))
今まで下のコードでちゃんとソートできていたのですが、別のブックで同じコードを使ってもソートしてくれません。
原因がわかる方いらしたら教えてください。
Call Range(Cells(i, 1), Cells(i, 6)).Sort(Cells(i, 1))
382デフォルトの名無しさん (JP 0Hcf-KKgq)
2022/12/14(水) 19:02:52.74ID:DP6xyTlHH >>381
callで呼んでるのが変。むしろそんな書き方が出来るのか!と新しい発見レベル
sortの書き方が古い。2003以前とかの書き方だったような気がする
Sub aaa()
Range(Cells(2, 1), Cells(6, 2)).Sort Key1:=Cells(1, 1)
End Sub
https://learn.microsoft.com/ja-jp/office/vba/api/excel.range.sort
callで呼んでるのが変。むしろそんな書き方が出来るのか!と新しい発見レベル
sortの書き方が古い。2003以前とかの書き方だったような気がする
Sub aaa()
Range(Cells(2, 1), Cells(6, 2)).Sort Key1:=Cells(1, 1)
End Sub
https://learn.microsoft.com/ja-jp/office/vba/api/excel.range.sort
383デフォルトの名無しさん (スッップ Sdff-KKgq)
2022/12/14(水) 19:15:27.04ID:8W0NbET2d 戻り値が必要ない呼び出しするならcallでもいいでしょ
ただし引数指定する時にカッコでくくる必要がある
自分のところでもソートされない現象が再現するんだけど、なぜか一度ソートすると次回以降はソートされるようになるね
ちなみにこんな感じに修正すればソートされるようにならない?
Call Range(Cells(i, 1), Cells(i, 6)).Sort(key1:=Cells(i, 1), Orientation:=xlSortRows)
・「key1:=」をつける
・「, Orientation:=xlSortRows」をつける
ただし引数指定する時にカッコでくくる必要がある
自分のところでもソートされない現象が再現するんだけど、なぜか一度ソートすると次回以降はソートされるようになるね
ちなみにこんな感じに修正すればソートされるようにならない?
Call Range(Cells(i, 1), Cells(i, 6)).Sort(key1:=Cells(i, 1), Orientation:=xlSortRows)
・「key1:=」をつける
・「, Orientation:=xlSortRows」をつける
384デフォルトの名無しさん (ワッチョイ 472b-3TNT)
2022/12/14(水) 20:03:28.98ID:zpvPwogV0385デフォルトの名無しさん (ワッチョイ df01-0RkQ)
2022/12/14(水) 20:05:33.98ID:Q900W+A40 Let と Call は使わないなあ...
386デフォルトの名無しさん (アウアウウー Sa6b-V/kh)
2022/12/15(木) 08:41:16.03ID:iAaI5rJJa え?VBA本職の人がこのスレにいたような??
過去スレで見たような
過去スレで見たような
387デフォルトの名無しさん (ワッチョイ 7fda-UXa/)
2022/12/15(木) 12:16:56.32ID:xwhwlfZy0 質問者が本職では?
388デフォルトの名無しさん (ワッチョイ e7da-V/kh)
2022/12/15(木) 12:19:05.46ID:E+nMgP0Z0 そんな訳ないじゃん
本職が初級者みたいな質問するわけないし。
本職が初級者みたいな質問するわけないし。
389デフォルトの名無しさん (ワッチョイ 7fda-UXa/)
2022/12/15(木) 14:39:58.62ID:xwhwlfZy0 初心者でも本職っているだろ
390デフォルトの名無しさん (ワッチョイ 6763-c6vA)
2022/12/15(木) 17:34:15.89ID:psAmgpbl0 なんのお仕事をされているんですか
391デフォルトの名無しさん (ワッチョイ e7da-V/kh)
2022/12/15(木) 18:06:00.77ID:E+nMgP0Z0 引きこもり
392デフォルトの名無しさん (アウアウエー Sa9f-arOL)
2022/12/15(木) 18:08:25.94ID:zS2qEH43a ネット検索で出てきたコードを参考にして、あるシートから別のシートへ PageSetup オブジェクトのプロパティを引き継ぐ汎用コードを作ったのですが、 Application.printcommunication を触ると何故か処理がコケてしまいます
別のコード(プロパティの順番や数が違う)を試してみると Application.printcommunication = True のところで 1004 エラーが
調べてみると Application.printcommunication は法則性のないエラーを吐くことが多いらしいんですが、上手く安定して動作させる方法はないでしょうか
なお Application.printcommunication の操作を省くと重すぎて使い物になりません
別のコード(プロパティの順番や数が違う)を試してみると Application.printcommunication = True のところで 1004 エラーが
調べてみると Application.printcommunication は法則性のないエラーを吐くことが多いらしいんですが、上手く安定して動作させる方法はないでしょうか
なお Application.printcommunication の操作を省くと重すぎて使い物になりません
393デフォルトの名無しさん (ワッチョイ bf19-TX1J)
2022/12/15(木) 22:51:51.95ID:SZeJUdRk0 VBAが本職ではないけど
他言語を含めてプログラマーってことなら
意外と本職の人いそう
他言語を含めてプログラマーってことなら
意外と本職の人いそう
394デフォルトの名無しさん (ワッチョイ 7fda-3TNT)
2022/12/16(金) 03:10:13.03ID:43IDYg4Z0 本職の定義が不明
395デフォルトの名無しさん (アウアウウー Sa6b-0RkQ)
2022/12/16(金) 06:44:51.24ID:lvCG6MuKa VBA で金貰ってる(=給料の一部)と言うだけならかなり多くの会社員が該当しそう
396デフォルトの名無しさん (ワッチョイ 7fda-KKgq)
2022/12/16(金) 07:34:05.36ID:KlD5oueT0 VBAだけで生計を立てている、としたら・・・?
397デフォルトの名無しさん (ワッチョイ 47da-u86g)
2022/12/16(金) 07:47:34.39ID:nXqIC3mr0 >>392
解決方法じゃなくてすまんけど。
trueを設定してこけるということはその前にfalseを設定してるのだと思うけど、
falseとtrueの間の処理でなんの設定を変更するとこけるのかを地道に探し出すしかないような気がする。
プリンタ関係だとページ設定あたりかと思うけど思わぬところが影響してることもあるし、プリンタ環境は千差万別だしね。
解決方法じゃなくてすまんけど。
trueを設定してこけるということはその前にfalseを設定してるのだと思うけど、
falseとtrueの間の処理でなんの設定を変更するとこけるのかを地道に探し出すしかないような気がする。
プリンタ関係だとページ設定あたりかと思うけど思わぬところが影響してることもあるし、プリンタ環境は千差万別だしね。
398デフォルトの名無しさん (ワッチョイ 4fda-ZR1D)
2022/12/17(土) 11:54:26.33ID:RQDgBjgc0 >>392
こんなブログ見つけたけどこれがほんとなら確かにクセつよ
https://ubuntu84.blogspot.com/2014/12/excelvba-pagesetup-printcomminucateion.html
こんなブログ見つけたけどこれがほんとなら確かにクセつよ
https://ubuntu84.blogspot.com/2014/12/excelvba-pagesetup-printcomminucateion.html
399デフォルトの名無しさん (スッップ Sd8a-e5AJ)
2022/12/17(土) 13:51:53.17ID:MTNASajBd400デフォルトの名無しさん (ワッチョイ 6a2f-8Cre)
2022/12/17(土) 14:34:09.55ID:rC46nFCS0 >>392,398
ちょっと気になって試したけど、それ、ほんとは
.Zoom = False の行でエラーになってるな
ステップ実行させてみればそこでちゃんとエラーになるんだが
普通に実行させるとそこでそのエラーが発生しないで、
PrintCommunicationで予期せぬエラーとなってるんじゃないか
(うちの環境では順番入れ替えて同じだった)
VBAのバグっぽいしマイクロソフトに問い合わせるのがよさげだが
一度ステップ実行で1行ずつ試してみれば?
ちょっと気になって試したけど、それ、ほんとは
.Zoom = False の行でエラーになってるな
ステップ実行させてみればそこでちゃんとエラーになるんだが
普通に実行させるとそこでそのエラーが発生しないで、
PrintCommunicationで予期せぬエラーとなってるんじゃないか
(うちの環境では順番入れ替えて同じだった)
VBAのバグっぽいしマイクロソフトに問い合わせるのがよさげだが
一度ステップ実行で1行ずつ試してみれば?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「中国人の訪日熱は冷めた」 人気旅行先から日本外れる 14日で自粛呼びかけ1カ月 ★3 [蚤の市★]
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★8 [蚤の市★]
- 「1800万円の売り上げゼロに…」中国インバウンドに特化の宿の今 ★3 [蚤の市★]
- 最新版Z級クソ映画ランキングが決定! [牛丼★]
- 公用車カーナビのNHK受信料「全額免除を」 千葉市議会、国に制度創設求める意見書可決 [少考さん★]
- 神田沙也加さん元恋人で元俳優の前山剛久 六本木のメンズラウンジ勤務を報告「真叶(まなと)です。よろしく」 [muffin★]
- 【悲報】30代独身女性「結婚や成功してる友達との差は開く一方、このまま1人で生きて淘汰される人生だと気づいて絶望してる…406万いいね [483447288]
- VIPでパズドラ
- 【埼玉】34歳無職、置き配📦を盗みまくる!その数、400点!😱 [718678614]
- フリーレン「んっ///だ、ダメだよアウラ!ヒンメルが見てる」アウラ「何言ってるの?ヒンメルはもういないじゃない」クチュクチュペロペロ
- 月のスマホ代250円なんだが
- 米国株大暴落!!!NISA含み損www [252835186]
