!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※前スレ
Excel VBA 質問スレ Part58
https://mevius.5ch.net/test/read.cgi/tech/1542577644/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
探検
Excel VBA 質問スレ Part59
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ d2a3-A3MQ)
2019/02/09(土) 15:12:30.70ID:3lTArmdf0451デフォルトの名無しさん (ドコグロ MM15-bAbS)
2019/02/24(日) 11:27:07.38ID:cR8EPyISM 下向き限定なら許す
バカみたいな脱出フラグ使われるよりよっぽどマシ
上向きgotoは死ね
バカみたいな脱出フラグ使われるよりよっぽどマシ
上向きgotoは死ね
452デフォルトの名無しさん (ワッチョイ 5d04-viXF)
2019/02/24(日) 11:31:30.55ID:UtSvB3y70453デフォルトの名無しさん (ワッチョイ 5d04-viXF)
2019/02/24(日) 11:34:47.34ID:UtSvB3y70 Forの3重構造の場合、例えば、i, j, kで回したとき、一番中の処理で、
i=10000
j=10000
k=10000
とか設定したら、全部抜けるという技は使ったことはあるが、Next k の次に処理があってNext jとかってなってるときは
やはりgoto を使うので、結局こういう技は使わなくなった
i=10000
j=10000
k=10000
とか設定したら、全部抜けるという技は使ったことはあるが、Next k の次に処理があってNext jとかってなってるときは
やはりgoto を使うので、結局こういう技は使わなくなった
454デフォルトの名無しさん (ワッチョイ 3968-rusg)
2019/02/24(日) 12:03:06.64ID:laz54YR/0455デフォルトの名無しさん (アークセー Sxbd-SaAU)
2019/02/24(日) 14:56:48.98ID:eghZe4V2x Case (i) ⊇ Case (j) ⊇ Case (k)....っていう感じの線形の包含関係が無条件に成り立たない限り、3次元以上のループ管理はややこしくなるだけだよな
456デフォルトの名無しさん (スップ Sd0a-er5G)
2019/02/24(日) 15:43:11.74ID:Jr9LmcmNd457デフォルトの名無しさん (スップ Sd0a-er5G)
2019/02/24(日) 15:50:41.15ID:Jr9LmcmNd 三重のル―プで条件によって全部から抜けるって処理自体あんまり無いだろ。
設計が悪いんじゃないの?
設計が悪いんじゃないの?
458デフォルトの名無しさん (ワッチョイ 3968-rusg)
2019/02/24(日) 16:01:32.16ID:laz54YR/0459デフォルトの名無しさん (ワッチョイ c594-uPuZ)
2019/02/24(日) 16:43:43.47ID:EsuDtWv80 エラーがわかりにくいという話に
エラーを出すおまえが悪いとマウント取りに行くプロ回答者
マウントがとりたくてやってるのか本当にただのバカなのかどっちなんだろ
エラーを出すおまえが悪いとマウント取りに行くプロ回答者
マウントがとりたくてやってるのか本当にただのバカなのかどっちなんだろ
460デフォルトの名無しさん (ワッチョイ 9e8c-0USI)
2019/02/24(日) 17:14:34.21ID:PMakJCH00 まあでも多重ループから一気に抜ける方法がExit Function/Sub しかないんだから
ループを含む部分をサブルーチンとして切り出す以外あるまいよ
ループを含む部分をサブルーチンとして切り出す以外あるまいよ
461デフォルトの名無しさん (アウアウウー Sa21-eq4B)
2019/02/24(日) 17:42:50.42ID:RNHs4bDba ループを回す以上はループを回す理由があるはず
その理由をわかりやすい関数名にしてループを切り出す
途中で抜けたければExitする
その理由をわかりやすい関数名にしてループを切り出す
途中で抜けたければExitする
462731 (ワッチョイ 11e6-Vd0N)
2019/02/24(日) 17:45:18.70ID:DRTFUInr0 いや、doとfor組み合わせれば二重ループ、三重ループからも抜けれるよ。
実用性は置いといて。
実用性は置いといて。
463デフォルトの名無しさん (ワッチョイ 39e6-rusg)
2019/02/24(日) 17:54:50.07ID:+Nxplz4k0 >>454
N88さわってたからループからgotoするのは違和感あるわ
N88さわってたからループからgotoするのは違和感あるわ
464デフォルトの名無しさん (ワッチョイ b501-W5xD)
2019/02/24(日) 18:03:52.89ID:vPp3qwU80 >>459
ただのバカだと思うよ。
あの場合は明らかにエラーメッセージがおかしい。
でも、エラーチェックしてると2つ以上の原因(またはどちらかが間違い)が考えられる場合がよくある。
その時どうメッセージ出すかは、作る人(仕様)次第。
ちなみに、
If xxx Then Exit For
If xxx Then _
Exit For
If xxx Then
Exit For
End If
それぞれ意見はあるだろうが、無駄に行増やしたくないが、マルチステートメントもな… なので、自作では2番目をよく使う。(もちろん仕様で決まってるならそれ優先。賛否について議論はしない)
ただのバカだと思うよ。
あの場合は明らかにエラーメッセージがおかしい。
でも、エラーチェックしてると2つ以上の原因(またはどちらかが間違い)が考えられる場合がよくある。
その時どうメッセージ出すかは、作る人(仕様)次第。
ちなみに、
If xxx Then Exit For
If xxx Then _
Exit For
If xxx Then
Exit For
End If
それぞれ意見はあるだろうが、無駄に行増やしたくないが、マルチステートメントもな… なので、自作では2番目をよく使う。(もちろん仕様で決まってるならそれ優先。賛否について議論はしない)
465デフォルトの名無しさん (ワッチョイ ada2-uPuZ)
2019/02/24(日) 18:39:00.05ID:L3+XvQB40 いつまで経ってもほったらかしにされてるVBAが悪い
Pythonがどうたら言う話はどうなった
Pythonがどうたら言う話はどうなった
466デフォルトの名無しさん (ワッチョイ 9e8c-0USI)
2019/02/24(日) 19:22:57.41ID:PMakJCH00 資産が多すぎて移行不可
467デフォルトの名無しさん (スップ Sd0a-er5G)
2019/02/24(日) 22:11:47.76ID:Jr9LmcmNd >>464
最後の奴を使う。
インデントで明らか。
というか、そんなエラーを出すこと自体無い。
が、もちろんスタイルの問題だから一番最初の奴を使おうが2番目のを使おうが問題無い。
エラー出してもすぐに分かるならな。
ちなみにその最後の奴ならIfとEndIfを書いてからExit Forを書く。For Nextの場合も中身は後だ。
染み付いてるんでね。
別にそういう書き方をすべきと言ってるんじゃない。
エラーにすぐ気付くなら何も問題は無い。
最後の奴を使う。
インデントで明らか。
というか、そんなエラーを出すこと自体無い。
が、もちろんスタイルの問題だから一番最初の奴を使おうが2番目のを使おうが問題無い。
エラー出してもすぐに分かるならな。
ちなみにその最後の奴ならIfとEndIfを書いてからExit Forを書く。For Nextの場合も中身は後だ。
染み付いてるんでね。
別にそういう書き方をすべきと言ってるんじゃない。
エラーにすぐ気付くなら何も問題は無い。
468デフォルトの名無しさん (ワッチョイ 0aa2-uGSY)
2019/02/25(月) 05:22:32.65ID:+5CiRMIi0 PythonAという新しい言語が誕生します
469デフォルトの名無しさん (ブーイモ MMc9-5UjA)
2019/02/25(月) 09:04:42.27ID:8UCufaEGM VBAって遅い?
セルにもの入れると遅くなるって以外で全般的に。
セルにもの入れると遅くなるって以外で全般的に。
470デフォルトの名無しさん (ワッチョイ 3968-rusg)
2019/02/25(月) 09:16:19.92ID:RXoXH9qp0471デフォルトの名無しさん (ブーイモ MM8e-0USI)
2019/02/25(月) 10:41:49.47ID:8lMUk5exM 純粋な数値計算部分は遅くはないんだけどね
シートアクセスが遅いのはまあ
シートアクセスが遅いのはまあ
472731 (ワッチョイ 11e6-Vd0N)
2019/02/25(月) 12:13:02.41ID:lRskRR3f0473デフォルトの名無しさん (スップ Sd0a-er5G)
2019/02/25(月) 12:31:17.59ID:iOBpdHSUd 確かに遅いんだけど、遅いと言ってる奴の大半はそいつのコードに問題があるような気がする。
コード変えたら100倍速くなったとかざらだし、VBAが遅いせいでと感じることは殆ど無い。
遅い場合でも処理を考えたら仕方ないと思える場合が殆ど。
コード変えたら100倍速くなったとかざらだし、VBAが遅いせいでと感じることは殆ど無い。
遅い場合でも処理を考えたら仕方ないと思える場合が殆ど。
474デフォルトの名無しさん (スップ Sd0a-er5G)
2019/02/25(月) 12:42:50.70ID:iOBpdHSUd >>471
純粋な数値計算部分が遅いと思うよ。
だからAPI使ってマルチスレッドのコード書いても処理が追い付かなくなる危険性があるわけで。
ただ、そんなの遅いと感じるようなものじゃないし、遅さが気になったら自分のコ―ドを疑った方が良い。
純粋な数値計算部分が遅いと思うよ。
だからAPI使ってマルチスレッドのコード書いても処理が追い付かなくなる危険性があるわけで。
ただ、そんなの遅いと感じるようなものじゃないし、遅さが気になったら自分のコ―ドを疑った方が良い。
475デフォルトの名無しさん (オイコラミネオ MMb5-W5xD)
2019/02/25(月) 13:56:48.78ID:avG/zv9MM 裏で動かせるなら、処理遅くても他の作業してればエエねん。
終わったら、アイコン点滅して教えてくれればエエねん。
終わったら、アイコン点滅して教えてくれればエエねん。
476デフォルトの名無しさん (ワッチョイ 0aa2-uGSY)
2019/02/25(月) 17:45:36.59ID:+5CiRMIi0 javascriptとvbaをネストする方法ってありませんか?
Dim ie As InternetExplorer
Set ie = CreateObject("InternetExplorer.Application")
ie.navigate ("https://kakaku.com/specsearch/0010/")
中略
ie.navigate "javascript:var i; for(i=1;i<18;i++){page(i);}"
これで1から18までpage関数をまわすことができると思いますが
1ページごとに情報を抜き出すための処理をvbaで書きたいです。
対象のwebページはjapvascriptのpage関数を使ってしかページ移動ができません。
ちなみに対象ページは↓です
https://kakaku.com/specsearch/0010/
Dim ie As InternetExplorer
Set ie = CreateObject("InternetExplorer.Application")
ie.navigate ("https://kakaku.com/specsearch/0010/")
中略
ie.navigate "javascript:var i; for(i=1;i<18;i++){page(i);}"
これで1から18までpage関数をまわすことができると思いますが
1ページごとに情報を抜き出すための処理をvbaで書きたいです。
対象のwebページはjapvascriptのpage関数を使ってしかページ移動ができません。
ちなみに対象ページは↓です
https://kakaku.com/specsearch/0010/
477デフォルトの名無しさん (ワッチョイ f1ce-ZT00)
2019/02/25(月) 19:16:52.45ID:fA1JAyF+0 >>476
kakaku.comなら「この検索結果を友達に知らせる」から直リンの情報が得られて、そこにページ番号も書かれてるからVBAだけで全データを取得できる
kakaku.comなら「この検索結果を友達に知らせる」から直リンの情報が得られて、そこにページ番号も書かれてるからVBAだけで全データを取得できる
478デフォルトの名無しさん (アークセー Sxbd-SaAU)
2019/02/25(月) 19:23:27.43ID:v0J7eUlyx javascriptでページ情報を適当な外部ファイルにダンプして後でvbaでまとめて読み込めば良いだけでは?
479デフォルトの名無しさん (ワッチョイ 3968-rusg)
2019/02/25(月) 19:42:45.75ID:RXoXH9qp0 変なページはキーボードマクロでやったほうが手っ取り早い場合も
480デフォルトの名無しさん (ワッチョイ 0aa2-uGSY)
2019/02/25(月) 19:47:45.89ID:+5CiRMIi0481デフォルトの名無しさん (アウアウウー Sa21-eq4B)
2019/02/25(月) 19:50:39.60ID:lqq1zerAa for i = 0 to 10
ie.navigate "javascript: page(" & i & ")"
vba_code_here()
next
ie.navigate "javascript: page(" & i & ")"
vba_code_here()
next
482デフォルトの名無しさん (ワッチョイ 0aa2-uGSY)
2019/02/25(月) 20:05:06.80ID:+5CiRMIi0 >>481
これでもいけますね!
ありがとうございます
自分でも試してたつもりだったんですが&の端がシングルクオーテーションだったからだめだったんだと思います。
これでもネストできそうです。ありがとうございます。
これでもいけますね!
ありがとうございます
自分でも試してたつもりだったんですが&の端がシングルクオーテーションだったからだめだったんだと思います。
これでもネストできそうです。ありがとうございます。
483デフォルトの名無しさん (ワッチョイ 6a7c-RjxB)
2019/02/25(月) 22:06:28.97ID:U7AKD+aj0 フォームに張り付けたMediaPlayerプレイヤーのコントロールのプロパティが勝手に変わる謎のエラーが頻発。
どうもフォームのサイズを変更するAPIがイタズラしているらしい。
こまかく切っていってようやくまさかの原因が解ったが対処方法わからずに対処療法してしまったがそれでも半日あまりを費やした。
よくわからないサンプルコード使うと謎のエラーが出てハマることを覚えた。
プログラマーってすごいな、これ毎日やってたらほんと禿げるわ。
どうもフォームのサイズを変更するAPIがイタズラしているらしい。
こまかく切っていってようやくまさかの原因が解ったが対処方法わからずに対処療法してしまったがそれでも半日あまりを費やした。
よくわからないサンプルコード使うと謎のエラーが出てハマることを覚えた。
プログラマーってすごいな、これ毎日やってたらほんと禿げるわ。
484デフォルトの名無しさん (ワッチョイ 3968-rusg)
2019/02/25(月) 22:14:43.73ID:RXoXH9qp0 >>483
>よくわからないサンプルコード使うと謎のエラーが出てハマることを覚えた。
これやると一番時間を無駄にする
・サンプルコードをざっと眺めて全体の流れを把握
・APIの仕様をしっかり読む
・一からテストコードを書く
・APIもう一回読み直しながら、もう少し詳細に作り直し
・本番環境で書く
こんな感じ。仕様を把握してから書いたほうが絶対に早い
>よくわからないサンプルコード使うと謎のエラーが出てハマることを覚えた。
これやると一番時間を無駄にする
・サンプルコードをざっと眺めて全体の流れを把握
・APIの仕様をしっかり読む
・一からテストコードを書く
・APIもう一回読み直しながら、もう少し詳細に作り直し
・本番環境で書く
こんな感じ。仕様を把握してから書いたほうが絶対に早い
485デフォルトの名無しさん (ワッチョイ 8aa3-5+1H)
2019/02/25(月) 22:46:07.98ID:TP8zPbuZ0 >>448
オーバーロードってあったっけ?それに、ジェネリクスがないから全部の定義されてる型について生成しなきゃいけないから地獄なんだよ!リテラルで配列を生成できたらいちいちDimしなくてもいい
オーバーロードってあったっけ?それに、ジェネリクスがないから全部の定義されてる型について生成しなきゃいけないから地獄なんだよ!リテラルで配列を生成できたらいちいちDimしなくてもいい
486デフォルトの名無しさん (ワッチョイ 8aa3-5+1H)
2019/02/25(月) 22:51:30.74ID:TP8zPbuZ0 ちなみに、望むシグニチャーはこんな感じ
' T = Generic
Public Function ArrayOf(/* vararg */ element As T) As Array<T>
どうせVBAは浮世離れしすぎてて書けないけどな!
' T = Generic
Public Function ArrayOf(/* vararg */ element As T) As Array<T>
どうせVBAは浮世離れしすぎてて書けないけどな!
487デフォルトの名無しさん (ワッチョイ 6a2f-+yoR)
2019/02/25(月) 23:00:26.05ID:F8HPsJ9/0 ジェネリックはないがヴァリアント型つかえば良いのだよ
無いものねだりしてもしょうがない
問題解決のためにあるものを使うだけ
無いものねだりしてもしょうがない
問題解決のためにあるものを使うだけ
488デフォルトの名無しさん (ワッチョイ 7d83-viXF)
2019/02/26(火) 06:28:56.69ID:QryMFy3y0 >>429
これ。面白いな。試していないが、頭から見て行ってまずForが出て来るのにForがないって言われるの?w
VBAも構文を修正するのはいろいろと問題があるだろうけど、こういうペリフェラルな部分では改良できるところは
いくらでも残ってるよねえ
これ。面白いな。試していないが、頭から見て行ってまずForが出て来るのにForがないって言われるの?w
VBAも構文を修正するのはいろいろと問題があるだろうけど、こういうペリフェラルな部分では改良できるところは
いくらでも残ってるよねえ
489デフォルトの名無しさん (ワッチョイ 7d83-viXF)
2019/02/26(火) 06:39:06.54ID:QryMFy3y0 構文チェックくらいなら、どっかサードパーティが作ってアドオンとか出来ないのかな
xlsファイルの中からプログラム文ってテキスト抽出って出来ないんだっけ
xlsファイルの中からプログラム文ってテキスト抽出って出来ないんだっけ
490デフォルトの名無しさん (ドコグロ MM15-ZgJD)
2019/02/26(火) 06:56:12.34ID:Dl2cSn2NM >>488
If〜Thenでブロック作るからNext出て来たらForがないと見なされる
C言語とかはEnd IfとNextの両方が } なので発生しないけどイメージとしては
for(i = 0; i <= 10; i++)
if(true){
next
}
みたいな感じになってる
If〜Thenでブロック作るからNext出て来たらForがないと見なされる
C言語とかはEnd IfとNextの両方が } なので発生しないけどイメージとしては
for(i = 0; i <= 10; i++)
if(true){
next
}
みたいな感じになってる
491デフォルトの名無しさん (ドコグロ MM15-ZgJD)
2019/02/26(火) 07:22:50.54ID:Dl2cSn2NM492デフォルトの名無しさん (ブーイモ MMc9-0USI)
2019/02/26(火) 07:28:56.02ID:wxY2HVgtM493デフォルトの名無しさん (ワッチョイ 662c-pE6h)
2019/02/26(火) 12:32:40.78ID:5MxkS3P70 >>476-482
wget は簡易クローラーだから、これで複数ページをダウンロードすれば?
その後、vba で処理すれば?
まあ、適度に時間をおきながら、アクセスしなよ。
頻繁にアクセスすると、営業妨害で逮捕されるかも
wget は簡易クローラーだから、これで複数ページをダウンロードすれば?
その後、vba で処理すれば?
まあ、適度に時間をおきながら、アクセスしなよ。
頻繁にアクセスすると、営業妨害で逮捕されるかも
494デフォルトの名無しさん (アウアウウー Sa21-ofTD)
2019/02/26(火) 17:27:28.56ID:8+gQOZAja win10(64bit)にoffice2013(32)入れたら動作おかしくなったので
新しいoffice買ってきた
新しいoffice買ってきた
495デフォルトの名無しさん (アークセー Sxbd-SaAU)
2019/02/26(火) 21:19:16.14ID:bIfQynSTx bitsadmin.exeやPowerShellを使う手もあるな
496デフォルトの名無しさん (ワッチョイ 8aa3-5+1H)
2019/02/26(火) 21:29:55.31ID:7VOH1icT0 Variantか…型安全をぶち壊してる気がするけど…
497デフォルトの名無しさん (ワッチョイ 9e8c-0USI)
2019/02/26(火) 21:52:08.87ID:3hFiWozk0498デフォルトの名無しさん (アウアウウー Sa21-eq4B)
2019/02/26(火) 21:57:39.80ID:tGZ/aMnha >>493
有料のRPAツールを使ってもダメなんでしょうか?
有料のRPAツールを使ってもダメなんでしょうか?
499デフォルトの名無しさん (ワッチョイ 6a2f-+yoR)
2019/02/26(火) 23:46:14.88ID:VNg9bOSA0 暗黙の型変換が拡大縮小の両方に効く時点で型安全なんてあり得ないわけで
500デフォルトの名無しさん (ワッチョイ 3968-rusg)
2019/02/27(水) 03:06:02.10ID:s/3R2a1B0 vbaで型安全ってなんのギャグだよ
Sub foo()
Dim bar As Long
bar = 1 & "0"
msgbox bar
End Sub
Sub foo()
Dim bar As Long
bar = 1 & "0"
msgbox bar
End Sub
501デフォルトの名無しさん (アークセー Sxbd-SaAU)
2019/02/27(水) 06:45:27.86ID:OKB4dgT5x >>500
これって 1 & "0" のところが 1 + 0 と評価されて出力が 1 になるのか?
これって 1 & "0" のところが 1 + 0 と評価されて出力が 1 になるのか?
502デフォルトの名無しさん (JP 0H2e-eSdf)
2019/02/27(水) 09:24:25.27ID:94mgNWr4H 数値を“”で括って連結させるって普通はやらないよな
もはやクレーマーの域
もはやクレーマーの域
503デフォルトの名無しさん (ワッチョイ 592b-nbQA)
2019/02/27(水) 09:27:38.25ID:ev0DPtJU0 >>501
ならない。
---------------------------
Microsoft Excel
---------------------------
10
---------------------------
OK
---------------------------
ならない。
---------------------------
Microsoft Excel
---------------------------
10
---------------------------
OK
---------------------------
504デフォルトの名無しさん (ワッチョイ a58e-19KH)
2019/02/27(水) 10:08:05.65ID:TCTVEEoa0 >>502
アホはお前
アホはお前
505デフォルトの名無しさん (JP 0H2e-eSdf)
2019/02/27(水) 10:14:24.05ID:94mgNWr4H >>504
自己紹介かな?
自己紹介かな?
506デフォルトの名無しさん (ワッチョイ a58e-19KH)
2019/02/27(水) 10:21:18.29ID:TCTVEEoa0507デフォルトの名無しさん (アウアウクー MM7d-0RHA)
2019/02/27(水) 10:48:04.11ID:hD6s3+cfM &演算子が勝手に文字列に変換するのは利便性考えたらわかるし
Long型の変数に文字列代入する時に暗黙のキャストするのもわからなくはない
けど警告ぐらいは出してほしいね
Long型の変数に文字列代入する時に暗黙のキャストするのもわからなくはない
けど警告ぐらいは出してほしいね
508デフォルトの名無しさん (JP 0H2e-eSdf)
2019/02/27(水) 10:48:12.18ID:94mgNWr4H >>506
それはエラーであってほしいというお前の願望だろ
それはエラーであってほしいというお前の願望だろ
509デフォルトの名無しさん (ワッチョイ 7d88-viXF)
2019/02/27(水) 11:32:27.96ID:WN1Wln/+0 VBAにも当然、厳密な構文ルールは存在するだろう
数字 & 文字列は文字列にするってのがルールじゃね。 一度覚えたらそれでいい
数字 & 文字列は文字列にするってのがルールじゃね。 一度覚えたらそれでいい
510デフォルトの名無しさん (ブーイモ MM0a-0USI)
2019/02/27(水) 11:45:10.68ID:K1qNq431M & が + に解釈されたらたまったもんじゃない
511デフォルトの名無しさん (スップ Sd0a-er5G)
2019/02/27(水) 12:38:47.93ID:JcvtiT+vd512デフォルトの名無しさん (スップ Sd0a-er5G)
2019/02/27(水) 12:41:38.23ID:JcvtiT+vd どんな言語でもツボは有るわけでね。
押さえてコードを書けない奴がアホなだけだろ。
初めて触った初心者じゃあるまいし警告なんて全く必要無い。
押さえてコードを書けない奴がアホなだけだろ。
初めて触った初心者じゃあるまいし警告なんて全く必要無い。
513デフォルトの名無しさん (スッップ Sd0a-19KH)
2019/02/27(水) 13:03:51.61ID:aJqXXkY2d >>509
代入先が数値だろ
代入先が数値だろ
514デフォルトの名無しさん (ワイモマー MM0a-uGSY)
2019/02/27(水) 13:08:23.01ID:OA+HeXxoM 同じマクロを使っている複数の文書があって、マクロの一部を修正したいんですが、
別ファイルのモジュール内の変更を行うマクロは VBA を使って書けますか?
または、別ファイルのモジュールを削除(開放)してインポートする形でも構いません。
実際はワードでやりたいことですがワードVBAスレがなさそうなのでこちらで質問しました。
Normal を書き換えて対応するというのはできない前提です。
別ファイルのモジュール内の変更を行うマクロは VBA を使って書けますか?
または、別ファイルのモジュールを削除(開放)してインポートする形でも構いません。
実際はワードでやりたいことですがワードVBAスレがなさそうなのでこちらで質問しました。
Normal を書き換えて対応するというのはできない前提です。
515デフォルトの名無しさん (スッップ Sd0a-19KH)
2019/02/27(水) 13:17:59.19ID:aJqXXkY2d >>514
スレ一覧よく見てみろ。そういういい加減で他人にすぐ聞くからできないことだらけなんだよ。
スレ一覧よく見てみろ。そういういい加減で他人にすぐ聞くからできないことだらけなんだよ。
516デフォルトの名無しさん (ブーイモ MM0a-0USI)
2019/02/27(水) 13:19:02.81ID:K1qNq431M ByRef x As Variant
517デフォルトの名無しさん (JP 0H2e-eSdf)
2019/02/27(水) 13:19:50.19ID:94mgNWr4H >>514
書けるよ
書けるよ
518デフォルトの名無しさん (ブーイモ MMc9-5UjA)
2019/02/27(水) 14:41:22.10ID:+oDGw9vfM >>503
Option Explicit付けてもエラーにならないのかな?
Option Explicit付けてもエラーにならないのかな?
519デフォルトの名無しさん (ワッチョイ 7d88-viXF)
2019/02/27(水) 15:47:12.82ID:WN1Wln/+0520デフォルトの名無しさん (ワッチョイ 7d88-viXF)
2019/02/27(水) 15:48:15.94ID:WN1Wln/+0 >それがVariantだから
すまん。これはなし
まあ変な構文ではある
すまん。これはなし
まあ変な構文ではある
521デフォルトの名無しさん (ブーイモ MM0a-0USI)
2019/02/27(水) 16:29:49.69ID:K1qNq431M522デフォルトの名無しさん (ドコグロ MM12-ZgJD)
2019/02/27(水) 17:58:08.46ID:HrTieKXOM >>507
& 演算子は文字列同士の連結だから
2 & 1 ⇒ "21"
"2" & 1 ⇒ "21"
2 & "1" ⇒ "21"
"2" & "1" ⇒ "21"
になる
逆に - 演算子は数値同士の引き算だから
2 - 1 ⇒ 1
"2" - 1 ⇒ 1
2 - "1" ⇒ 1
"2" & "1" ⇒ 1
になる
問題は + 演算子で普通は数値の足し算なんだけど両辺が文字列の時は文字列連結になるので
2 + 1 ⇒ 3
"2" + 1 ⇒ 3
2 + "1" ⇒ 3
"2" + "1" ⇒ "21"
になる
なのでVariant使っててA + Bとかやってると両方が文字列の時にはあ?ってなことになったりする
& 演算子は文字列同士の連結だから
2 & 1 ⇒ "21"
"2" & 1 ⇒ "21"
2 & "1" ⇒ "21"
"2" & "1" ⇒ "21"
になる
逆に - 演算子は数値同士の引き算だから
2 - 1 ⇒ 1
"2" - 1 ⇒ 1
2 - "1" ⇒ 1
"2" & "1" ⇒ 1
になる
問題は + 演算子で普通は数値の足し算なんだけど両辺が文字列の時は文字列連結になるので
2 + 1 ⇒ 3
"2" + 1 ⇒ 3
2 + "1" ⇒ 3
"2" + "1" ⇒ "21"
になる
なのでVariant使っててA + Bとかやってると両方が文字列の時にはあ?ってなことになったりする
523デフォルトの名無しさん (アウアウクー MM7d-0RHA)
2019/02/27(水) 18:25:55.24ID:hD6s3+cfM524デフォルトの名無しさん (アウアウウー Sa21-eq4B)
2019/02/27(水) 18:25:56.15ID:U+okKr8Fa 出力する時以外に文字列と他の型を演算させる需要ってあるか?
すごい変なプログラム書いてそう
すごい変なプログラム書いてそう
525デフォルトの名無しさん (アウアウクー MM7d-0RHA)
2019/02/27(水) 18:31:15.76ID:hD6s3+cfM526デフォルトの名無しさん (アウアウウー Sa21-eq4B)
2019/02/27(水) 18:45:49.28ID:U+okKr8Fa >>525
セルの値同士の計算をダイレクトにやろうとする発想にまず疑問を感じる
セルの値同士の計算をダイレクトにやろうとする発想にまず疑問を感じる
527デフォルトの名無しさん (スップ Sd0a-er5G)
2019/02/27(水) 18:48:38.08ID:JcvtiT+vd だから、型を意識してコード書かない奴は駄目なんだ。
あと、Cells(1,1) + Cells(1,2)じゃなくて、Cells(1,1).Value + Cells(1,2).Valueとすべき。
あと、Cells(1,1) + Cells(1,2)じゃなくて、Cells(1,1).Value + Cells(1,2).Valueとすべき。
528デフォルトの名無しさん (オイコラミネオ MMb5-W5xD)
2019/02/27(水) 18:53:54.71ID:sssEi30aM529デフォルトの名無しさん (ワッチョイ 3968-rusg)
2019/02/27(水) 19:19:30.96ID:s/3R2a1B0530デフォルトの名無しさん (ワッチョイ ea01-ZgJD)
2019/02/27(水) 19:31:13.45ID:zqU1UpTE0531デフォルトの名無しさん (ワッチョイ b602-PZ49)
2019/02/27(水) 19:35:36.50ID:kQabADAE0 本当によくできたプログラムっていうのは変数がどんどん減っていくものだよ
532デフォルトの名無しさん (ワッチョイ 11b0-0RHA)
2019/02/27(水) 19:49:19.80ID:J+jPuAvg0 やっぱVBAってクソだわ
533デフォルトの名無しさん (ワッチョイ 6a90-rusg)
2019/02/27(水) 19:52:19.85ID:Vhp/GCq70 >>532
と罵りたいだけが為にここに来るんだろ? プ
と罵りたいだけが為にここに来るんだろ? プ
534デフォルトの名無しさん (ワッチョイ 11b0-0RHA)
2019/02/27(水) 20:02:27.43ID:J+jPuAvg0 やっぱVBAスレってクソだわ
535デフォルトの名無しさん (ワッチョイ 89c5-T+SP)
2019/02/27(水) 20:17:03.40ID:INBREE+00 クソレスすんなプロさん
536デフォルトの名無しさん (ワッチョイ 9e8c-0USI)
2019/02/27(水) 21:22:24.52ID:rA0fzWNE0 >>531
デバッグはやりづらくなるけどな
デバッグはやりづらくなるけどな
537デフォルトの名無しさん (ワッチョイ 7d88-viXF)
2019/02/27(水) 21:48:46.20ID:WN1Wln/+0 まあやっぱり、1 & "0" とか "2" + 1
とかが出てきたら、エラーで落とすのが普通だろうなあ
で、プログラマはそこで、Val関数で数値にするとか逆に文字列にするとか
やっぱり型変換、確認をプログラムの中に入れながら作るのが本来の筋だと思うわ
そもそもの構文を変えないのであればね
とかが出てきたら、エラーで落とすのが普通だろうなあ
で、プログラマはそこで、Val関数で数値にするとか逆に文字列にするとか
やっぱり型変換、確認をプログラムの中に入れながら作るのが本来の筋だと思うわ
そもそもの構文を変えないのであればね
538デフォルトの名無しさん (アウアウエー Sa52-bAbS)
2019/02/27(水) 22:04:09.28ID:6/kMoeDHa どうでもいいよ
所詮VBAだし
所詮VBAだし
539デフォルトの名無しさん (ブーイモ MM0a-xRI1)
2019/02/27(水) 23:43:00.80ID:APPBNRQYM >>538
そういうこと
そういうこと
540デフォルトの名無しさん (ワッチョイ 1feb-IBRN)
2019/02/28(木) 00:41:55.86ID:ULaFt4eB0 質問です。お願いします。
public sub shuukei()
'集計してシートに書き出してそそのシートのコピーを別ファイルとして保存
end sub
↑
こういうコードを作りましたが、少しでも速く処理されるようにもっと工夫したいと思っています。
そこで、少し書き直しては速度に変化があるか確認したいのですが、コードの実行速度を
測る方法がわかりません。教えていただけないでしょうか?
public sub jikantest()
'計測スタート
call shuukei
'計測終り
msgbox かかった時間
end sub
↑
こんな感じでいちいち確認したいです。
public sub shuukei()
'集計してシートに書き出してそそのシートのコピーを別ファイルとして保存
end sub
↑
こういうコードを作りましたが、少しでも速く処理されるようにもっと工夫したいと思っています。
そこで、少し書き直しては速度に変化があるか確認したいのですが、コードの実行速度を
測る方法がわかりません。教えていただけないでしょうか?
public sub jikantest()
'計測スタート
call shuukei
'計測終り
msgbox かかった時間
end sub
↑
こんな感じでいちいち確認したいです。
541デフォルトの名無しさん (ワッチョイ ffdd-r++/)
2019/02/28(木) 00:46:39.13ID:3O1mZe4/0 >>540
dim st as single, ed as single
st = timer
(処理)
ed = timer
debug.print ed - st & "sec"
いつもこんな感じでやってる。
dim st as single, ed as single
st = timer
(処理)
ed = timer
debug.print ed - st & "sec"
いつもこんな感じでやってる。
542デフォルトの名無しさん (ワッチョイ 9f2f-8MIE)
2019/02/28(木) 00:47:31.02ID:CZa6uBrL0 Debug.Print Now でもしとけ
543デフォルトの名無しさん (ワッチョイ 1feb-IBRN)
2019/02/28(木) 00:51:18.30ID:ULaFt4eB0 >>541
ありがとうございました!
ありがとうございました!
544デフォルトの名無しさん (ワッチョイ 9f7c-sBsz)
2019/02/28(木) 01:23:05.26ID:8R6HTxA70 変数の型はトレースの時だけでもシンタックスハイライトして欲しい。
それか左辺に合うように強制キャストで。
それか左辺に合うように強制キャストで。
545デフォルトの名無しさん (ワッチョイ f7da-3oSp)
2019/02/28(木) 02:06:55.62ID:u4sOxAKE0 >>540
早くなってもわかりにくいのはやんない方がいいぞ
早くなってもわかりにくいのはやんない方がいいぞ
546デフォルトの名無しさん (ワッチョイ 1feb-IBRN)
2019/02/28(木) 06:51:30.57ID:ULaFt4eB0 お恥ずかしい質問ですが、もうひとつお願いします。
私は、変数の中身でもなんでも、とにかく確認したいときはmsgboxを使うんです。
そのほうが楽だし。
でも、こういう場所で回答するような人のほとんどは、>>541-542さんのように、
debug.なんとか ってのを使いますよね?
よくわからないけど、debugって、msgboxとは違って、どこかのウィンドウに表示させるってことだけ
は知っています。
そして、msgboxよりも、そっちの方がなんとなく本格派っぽいことも感じてます。
みなさん、どうしてmsgboxよりそっちを使うんですか?本当にそっちが便利なんですか?
私は、変数の中身でもなんでも、とにかく確認したいときはmsgboxを使うんです。
そのほうが楽だし。
でも、こういう場所で回答するような人のほとんどは、>>541-542さんのように、
debug.なんとか ってのを使いますよね?
よくわからないけど、debugって、msgboxとは違って、どこかのウィンドウに表示させるってことだけ
は知っています。
そして、msgboxよりも、そっちの方がなんとなく本格派っぽいことも感じてます。
みなさん、どうしてmsgboxよりそっちを使うんですか?本当にそっちが便利なんですか?
547デフォルトの名無しさん (ワッチョイ 9701-j5yB)
2019/02/28(木) 06:56:12.35ID:PI/gJuny0 >>546
msgboxだと毎回画面が出ちゃうから
msgboxだと毎回画面が出ちゃうから
548デフォルトの名無しさん (ワッチョイ d74f-nvQ/)
2019/02/28(木) 07:04:09.83ID:TTqJ1VR80 Debugって俺も使ったことないんだが、過去何行くらいまで遡れるの?
それとその結果ってファイルに出力できる?
それとその結果ってファイルに出力できる?
549デフォルトの名無しさん (ワッチョイ 9fa2-IBRN)
2019/02/28(木) 07:09:57.92ID:syDDbQ630 自分はstopとローカウルィンドウ派だな
550デフォルトの名無しさん (ワッチョイ ffdd-r++/)
2019/02/28(木) 07:10:06.15ID:3O1mZe4/0 >>546
OK押すのメンドいし、押したら消えるし。
Printならイミディエイトウィンドウにどんどん溜まっていくから比較しやすいし。
VBE上でCtrl+Gで呼び出せる。
コード書くときは常に表示してるな。
他にもいろいろ便利に使えるからGGってみて。
OK押すのメンドいし、押したら消えるし。
Printならイミディエイトウィンドウにどんどん溜まっていくから比較しやすいし。
VBE上でCtrl+Gで呼び出せる。
コード書くときは常に表示してるな。
他にもいろいろ便利に使えるからGGってみて。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 ★2 [Hitzeschleier★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★2 [ぐれ★]
- 【中国局長】両国関係に「深刻な影響」 首相発言の撤回要求 [蚤の市★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★3 [BFU★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 【維新】吉村知事「中国人観光客だけに頼るビジネスモデル変えていかないといけない」「高市総理の発言は撤回する必要はない」 [Hitzeschleier★]
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
- 【実況】博衣こよりのえちえち歌枠🧪
- 高市「発言は撤回しない。謝罪もするな。外務省局長!任せたぞ。」👈なにをさせたかったの?😲 [826239858]
- 【速報】51歳まで自衛隊になれるように法改正ww [347751896]
- 外務省局長、よくわからないまま帰国へ [834922174]
- 自分に自信がない女の子、陽キャ美容室で80cmのエクステを付けた結果wwwwwwwwwwwwwwwwwww [329329848]
