!extend:checked:vvvvv:1000:512
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※前スレ
Excel VBA 質問スレ Part61
http://mevius.5ch.net/test/read.cgi/tech/1556203263/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
探検
Excel VBA 質問スレ Part62
■ このスレッドは過去ログ倉庫に格納されています
1
2019/06/24(月) 00:21:37.48493デフォルトの名無しさん (ワッチョイ bf7c-Ssy3)
2019/07/26(金) 19:39:04.29ID:Mlm4oTrf0 >>492
コントロールってどれ?
コントロールってどれ?
494デフォルトの名無しさん (ワッチョイ 8a01-KIok)
2019/07/27(土) 08:56:54.14ID:4Tko0dWk0 バーコードたくさん作って印刷するプログラム作ってるんだけど
一筋縄ではいかないな
いろいろエラーが出て大変だわ
しかもステップインしながら様子みようとすると
中断モードでは入力できません
とやらのエラーがでる
回避する方法はあるようだけどめんどくさそうだ
一筋縄ではいかないな
いろいろエラーが出て大変だわ
しかもステップインしながら様子みようとすると
中断モードでは入力できません
とやらのエラーがでる
回避する方法はあるようだけどめんどくさそうだ
495デフォルトの名無しさん (ワッチョイ 4668-/0C9)
2019/07/27(土) 08:59:35.78ID:T1jDYlFV0496デフォルトの名無しさん (ワッチョイ 8a01-KIok)
2019/07/27(土) 09:07:12.15ID:4Tko0dWk0 >>495
それって外部からフォント導入しないといけないやつですよね?
会社のPCでやってるんでだめなんですよね
今はこれ↓を参照して使ってます
Microsoft Access BarCode Control 14.0
重いしエラー出やすいし別の方法があればいいんですけど
それって外部からフォント導入しないといけないやつですよね?
会社のPCでやってるんでだめなんですよね
今はこれ↓を参照して使ってます
Microsoft Access BarCode Control 14.0
重いしエラー出やすいし別の方法があればいいんですけど
497デフォルトの名無しさん (ワッチョイ 4668-/0C9)
2019/07/27(土) 09:09:23.16ID:T1jDYlFV0 フォントの導入も出来ないのか
それはさすがにキツイなぁ
それはさすがにキツイなぁ
498デフォルトの名無しさん (ワッチョイ 4668-/0C9)
2019/07/27(土) 09:11:52.17ID:T1jDYlFV0499デフォルトの名無しさん (ワッチョイ 8a01-KIok)
2019/07/27(土) 09:18:31.74ID:4Tko0dWk0 >>498
ありがとう
でも、そもそもネットすら自由に使えないんですよね
あと、数百個作って印刷するので、ネット経由だと時間かかりそう
お客さんがらみの情報を外に出すことに上の人が嫌がるだろうということを考えると
ローカルで終わる仕組みがないと厳しいですね
ありがとう
でも、そもそもネットすら自由に使えないんですよね
あと、数百個作って印刷するので、ネット経由だと時間かかりそう
お客さんがらみの情報を外に出すことに上の人が嫌がるだろうということを考えると
ローカルで終わる仕組みがないと厳しいですね
500デフォルトの名無しさん (ワッチョイ 4668-/0C9)
2019/07/27(土) 09:23:26.79ID:T1jDYlFV0 牢獄かよwwwww
・フォントを作る。
バーコードは0-9の10個しかない
svgで作ってローカルのhtmlに表示させる
・フォントを作る。
バーコードは0-9の10個しかない
svgで作ってローカルのhtmlに表示させる
501デフォルトの名無しさん (ワッチョイ 27ce-ZVB1)
2019/07/27(土) 09:50:59.75ID:9xF62cln0502デフォルトの名無しさん (ワッチョイ 8a01-KIok)
2019/07/27(土) 09:54:25.37ID:4Tko0dWk0 >>500
セキュリティが特に厳しすぎるというよりも、意識が昭和なんですよね
人員削減されるからエクセルマクロつくるなとか面と向かって言う大御所もいるんで
とにかく目立たぬよう、些細な問題であっても起きないよう・・・と神経使うんです
今エラー回避の大きな進展があったのでなんとかこのまま組んでみます
Forで回しながらバーコードを作成・セルに配置していくんですけど
配置したセルの左上にナンバリングするコードを入れるとエラーで落ちるんですよね
バーコードを配置する処理と、ナンバリングする処理を異なるForで分けたらエラー出なくなりました
それ以外のコードは同じなんでなんだか理不尽なのですが、
理屈から攻めるより、多様なコードを試して見てどれがいけるか試して見るという
数打ちゃ当たる的な攻め方をするしかないみたいです
ステップ実行できないのがつらいですが
セキュリティが特に厳しすぎるというよりも、意識が昭和なんですよね
人員削減されるからエクセルマクロつくるなとか面と向かって言う大御所もいるんで
とにかく目立たぬよう、些細な問題であっても起きないよう・・・と神経使うんです
今エラー回避の大きな進展があったのでなんとかこのまま組んでみます
Forで回しながらバーコードを作成・セルに配置していくんですけど
配置したセルの左上にナンバリングするコードを入れるとエラーで落ちるんですよね
バーコードを配置する処理と、ナンバリングする処理を異なるForで分けたらエラー出なくなりました
それ以外のコードは同じなんでなんだか理不尽なのですが、
理屈から攻めるより、多様なコードを試して見てどれがいけるか試して見るという
数打ちゃ当たる的な攻め方をするしかないみたいです
ステップ実行できないのがつらいですが
503デフォルトの名無しさん (ワッチョイ 27ce-ZVB1)
2019/07/27(土) 13:48:31.18ID:9xF62cln0504デフォルトの名無しさん (ワッチョイ 4668-/0C9)
2019/07/27(土) 14:03:45.48ID:nw7YuAgg0 なんとなく画像のバッファかなんかが溜まってる気がする
screenupdateをtrueにしたまま回すと多分落ちない気がする
screenupdateをtrueにしたまま回すと多分落ちない気がする
505デフォルトの名無しさん (ワッチョイ 8a01-KIok)
2019/07/27(土) 15:48:46.00ID:4Tko0dWk0 >>504
それっぽいのかなと思ってます
起動して初回の処理は何の問題なくいけるんですけど
2回目ボタンを押して別のバーコードを作ろうとするとエラーがでるんですよね
印刷処理が終わった直後にバーコードや連番すべてを削除するコードを置いているんですけど
おそらく何かが残っているんじゃないかと思います
今の所は>>502で書いたように処理を分けることでうまくいってます
原因特定できたわけじゃないんですけどね
全削除のコード自体はそのままなので、ここに問題はないんじゃないかと思っています
ScreenUpdatingはFalseにしても以前のコードだと同じようにエラーがでますね
それだけじゃなくて、実用には耐えられないレベルで遅くなります
>>503
1.もしオブジェクトの指定が間違えているとするなら初回でもエラーがでるだるはず
2.今のコードと、バーコード配置直後にナンバリングするコードでオブジェクトの指定は同じ
なので、やはり原因とするには矛盾があるかな
最終的には、負荷を減らすために、1ページ分バーコードを作ったら
その都度印刷+全削除を繰り返すことで全て印刷するという形で組んでいこうと思っています
バッファ絡みだと嫌な予感もしますが、原因特定はできなくとも、エラー回避方法は特定できてきたのでなんとかなるかなと
それっぽいのかなと思ってます
起動して初回の処理は何の問題なくいけるんですけど
2回目ボタンを押して別のバーコードを作ろうとするとエラーがでるんですよね
印刷処理が終わった直後にバーコードや連番すべてを削除するコードを置いているんですけど
おそらく何かが残っているんじゃないかと思います
今の所は>>502で書いたように処理を分けることでうまくいってます
原因特定できたわけじゃないんですけどね
全削除のコード自体はそのままなので、ここに問題はないんじゃないかと思っています
ScreenUpdatingはFalseにしても以前のコードだと同じようにエラーがでますね
それだけじゃなくて、実用には耐えられないレベルで遅くなります
>>503
1.もしオブジェクトの指定が間違えているとするなら初回でもエラーがでるだるはず
2.今のコードと、バーコード配置直後にナンバリングするコードでオブジェクトの指定は同じ
なので、やはり原因とするには矛盾があるかな
最終的には、負荷を減らすために、1ページ分バーコードを作ったら
その都度印刷+全削除を繰り返すことで全て印刷するという形で組んでいこうと思っています
バッファ絡みだと嫌な予感もしますが、原因特定はできなくとも、エラー回避方法は特定できてきたのでなんとかなるかなと
506デフォルトの名無しさん (ワッチョイ 4668-/0C9)
2019/07/27(土) 16:22:17.12ID:nw7YuAgg0 >>505
>ScreenUpdating
これは残念
地味に自信があったのにw
>ゴミどうこう
恐らく当たっている
vbaはGC、ガベージコレクション・・要は前の作業のゴミ掃除が貧弱
一番わかりやすいのは、新しいbookをデスクトップが同じフォルダにでも作ってそこで作業させること
コード上は色々とややこしくなるが、大分緩和される
多分一番いいのはVBS、Excel外から作って、Excelをそのたびに再起動させる事
それならまず大丈夫
>ScreenUpdating
これは残念
地味に自信があったのにw
>ゴミどうこう
恐らく当たっている
vbaはGC、ガベージコレクション・・要は前の作業のゴミ掃除が貧弱
一番わかりやすいのは、新しいbookをデスクトップが同じフォルダにでも作ってそこで作業させること
コード上は色々とややこしくなるが、大分緩和される
多分一番いいのはVBS、Excel外から作って、Excelをそのたびに再起動させる事
それならまず大丈夫
507デフォルトの名無しさん (ワッチョイ 46e9-tP4r)
2019/07/27(土) 17:21:27.70ID:0zw3343k0 こういう問題が出て
https://gyazo.com/6bbc43b5a4346db69404d52e985b0244
https://gyazo.com/faf8012dcb22cdd442c687663f1e7524
セル番地(F10)について、次の問1から問3を解答しなさい。
問1 セル番地(F10)を複合参照で列を固定した答えを記入しなさい。
問2 セル番地(F10)を複合参照で行を固定した答えを記入しなさい。
問3 セル番地(F10)を絶対参照で列と行を固定した答えを記入しなさい。
1,SUM($F5:$F9) 2,SUM(F$5:F$9) 3,SUM($F$5:$F$9) と解答したら全て間違えてました。
解答が分からないので教えて下さい。
https://gyazo.com/6bbc43b5a4346db69404d52e985b0244
https://gyazo.com/faf8012dcb22cdd442c687663f1e7524
セル番地(F10)について、次の問1から問3を解答しなさい。
問1 セル番地(F10)を複合参照で列を固定した答えを記入しなさい。
問2 セル番地(F10)を複合参照で行を固定した答えを記入しなさい。
問3 セル番地(F10)を絶対参照で列と行を固定した答えを記入しなさい。
1,SUM($F5:$F9) 2,SUM(F$5:F$9) 3,SUM($F$5:$F$9) と解答したら全て間違えてました。
解答が分からないので教えて下さい。
508デフォルトの名無しさん (ワッチョイ 4668-/0C9)
2019/07/27(土) 17:31:16.63ID:nw7YuAgg0509デフォルトの名無しさん (ワッチョイ bf7c-Ssy3)
2019/07/27(土) 17:37:41.95ID:hapzpDWL0510デフォルトの名無しさん (ワッチョイ 46e9-tP4r)
2019/07/27(土) 17:39:32.12ID:0zw3343k0 >508
そうです。でも全てバツが入ってました…。
返却されたプリントに、"セル番地(F10)についてここのみで記します"と書いてありました。
自分には意味がさっぱりですが何か分かりませんか?
そうです。でも全てバツが入ってました…。
返却されたプリントに、"セル番地(F10)についてここのみで記します"と書いてありました。
自分には意味がさっぱりですが何か分かりませんか?
511デフォルトの名無しさん (ワッチョイ 8a02-tP4r)
2019/07/27(土) 17:52:14.66ID:elOLq8oK0 VBAのフォームのテキストボックス内のフォントサイズが場所によってまちまちなんですが、
どうしたら統一できるでしょうか?
因みに、
テキストボックスのプロパティ(フォント名、フォントサイズ、ボックス高さ)はすべて統一しています。
https://uploader.xzy.pw/upload/20190727174533_466d653379.png
どうしたら統一できるでしょうか?
因みに、
テキストボックスのプロパティ(フォント名、フォントサイズ、ボックス高さ)はすべて統一しています。
https://uploader.xzy.pw/upload/20190727174533_466d653379.png
512510 (ワッチョイ 46e9-tP4r)
2019/07/27(土) 17:55:18.22ID:0zw3343k0 ”ここの外で記します”と書いてあるかも知れないです。先生の字が汚くて読めない…
セル番地(F10)について、ここの外で記します。と書いてあるのでそれがヒントになってると思うのですが。
これを踏まえた上で>>507の解答お願いいたしますm(_ _)m
セル番地(F10)について、ここの外で記します。と書いてあるのでそれがヒントになってると思うのですが。
これを踏まえた上で>>507の解答お願いいたしますm(_ _)m
513デフォルトの名無しさん (ワッチョイ bf7c-Ssy3)
2019/07/27(土) 17:57:54.34ID:hapzpDWL0 >>511
サイズ違うやつって全角じゃないの?
サイズ違うやつって全角じゃないの?
514デフォルトの名無しさん (ワッチョイ 4668-/0C9)
2019/07/27(土) 18:04:51.46ID:nw7YuAgg0 >>510
このスレをその教師に見せろ
その教師は無能でアホだから何も分かっていない
'以下、その教師に当てる連絡
テメーより何十年も現場で使い倒してる連中が全員正解と言っている
つまらないルールがあるならそれを書け、聞いてやった上で正解を出してやるから書き込め
'連絡、ここまで
このスレをその教師に見せろ
その教師は無能でアホだから何も分かっていない
'以下、その教師に当てる連絡
テメーより何十年も現場で使い倒してる連中が全員正解と言っている
つまらないルールがあるならそれを書け、聞いてやった上で正解を出してやるから書き込め
'連絡、ここまで
515デフォルトの名無しさん (ワッチョイ c694-mBoI)
2019/07/27(土) 18:04:53.29ID:zfEkdoko0 スレ違いだっていわれてんのになめてんのか?
516デフォルトの名無しさん (ワッチョイ a38e-SsL+)
2019/07/27(土) 18:05:26.47ID:0I7B0fTa0 >>512
死ねや、クズ
死ねや、クズ
517デフォルトの名無しさん (ワッチョイ 4668-/0C9)
2019/07/27(土) 18:06:41.53ID:nw7YuAgg0518デフォルトの名無しさん (ワッチョイ 4668-/0C9)
2019/07/27(土) 18:08:26.65ID:nw7YuAgg0519デフォルトの名無しさん (スフッ Sdaa-LrPu)
2019/07/27(土) 18:11:07.39ID:X/lrVnpNd >>514
ここ学校の連絡掲示板じゃないんで
ここ学校の連絡掲示板じゃないんで
520デフォルトの名無しさん (ワッチョイ 4668-/0C9)
2019/07/27(土) 18:13:50.95ID:nw7YuAgg0521デフォルトの名無しさん (スフッ Sdaa-LrPu)
2019/07/27(土) 18:16:51.94ID:kP1N8Rftd >>520
スレタイが理解できないなら仕方ないな
スレタイが理解できないなら仕方ないな
522デフォルトの名無しさん (ワッチョイ 8a02-tP4r)
2019/07/27(土) 18:51:44.04ID:elOLq8oK0 >>513
数字はすべて全角です
数字はすべて全角です
523デフォルトの名無しさん (ワッチョイ ab95-wm0+)
2019/07/27(土) 18:57:28.77ID:1cAkezH+0524デフォルトの名無しさん (ワッチョイ bf7c-Ssy3)
2019/07/27(土) 19:03:45.50ID:hapzpDWL0 >>522
ほんとに統一されてるか?されてないから違うんじゃないか?
ほんとに統一されてるか?されてないから違うんじゃないか?
525デフォルトの名無しさん (アメ MMc7-HdTi)
2019/07/27(土) 23:59:06.49ID:eS9QWMI/M526デフォルトの名無しさん (ワッチョイ 0a2f-aoqV)
2019/07/28(日) 04:39:33.47ID:rLjNQrfA0 >>508
列の合計で。C10:E10が正解って落ちなんじゃ
列の合計で。C10:E10が正解って落ちなんじゃ
527デフォルトの名無しさん (ワッチョイ 4633-Iugu)
2019/07/28(日) 09:32:44.25ID:Ao5MhP5V0 > セル番地(F10)を
つまり「$F10, F$10, $F$10」が答えってオチ?
つまり「$F10, F$10, $F$10」が答えってオチ?
528デフォルトの名無しさん (スププ Sdaa-ySdJ)
2019/07/28(日) 09:54:38.87ID:UXTeVNdOd529デフォルトの名無しさん (ワッチョイ 8a01-lX5B)
2019/07/28(日) 12:28:22.02ID:Ln2vM5+c0 >>526
単価バラバラの個数集計して何をしたいんだ?
単価バラバラの個数集計して何をしたいんだ?
530デフォルトの名無しさん (ワッチョイ 068c-0v1+)
2019/07/28(日) 15:40:47.61ID:9CPL8aqE0531デフォルトの名無しさん (ワッチョイ 5301-/0C9)
2019/07/28(日) 15:44:43.68ID:sZg+ZdsB0 >>493
Adobe PDF Reader コントロールです。
Adobe PDF Reader コントロールです。
532デフォルトの名無しさん (ワッチョイ bf7c-Ssy3)
2019/07/28(日) 16:34:10.62ID:19w4dfv20 >>531
Excelのバージョン違うけど俺も同じエラー出たからWebBrowserコントロールで表示させた
Excelのバージョン違うけど俺も同じエラー出たからWebBrowserコントロールで表示させた
533デフォルトの名無しさん (スププ Sdaa-6AdZ)
2019/07/29(月) 21:45:38.25ID:CSar0obtd534デフォルトの名無しさん (ワッチョイ eaa2-KIok)
2019/07/30(火) 10:04:06.46ID:/sOZLFOB0 for i = 2 to 6
Sheet1.Range(cells(i, 1), cells(i, 7)).Value = Sheet3.Range(cells(2, 1), cells(2, 7)).Value
next i
これがエラー吐くんですがどうしてだかわかりますか?
なおコードは簡略化してあります。エラーが出るところだけピックアップしてみました。
Sheet1.Range(cells(i, 1), cells(i, 7)).Value = Sheet3.Range(cells(2, 1), cells(2, 7)).Value
next i
これがエラー吐くんですがどうしてだかわかりますか?
なおコードは簡略化してあります。エラーが出るところだけピックアップしてみました。
535デフォルトの名無しさん (ワッチョイ ab95-wm0+)
2019/07/30(火) 10:21:39.52ID:RYwsY7rK0 セルの結合などで配列が作れないとか?
536デフォルトの名無しさん (ワッチョイ eaa2-KIok)
2019/07/30(火) 10:27:09.85ID:/sOZLFOB0 セルの結合はしてないです
537デフォルトの名無しさん (ワッチョイ 6a2b-Ssy3)
2019/07/30(火) 10:38:34.52ID:7eiKBQzd0 cellsにもシート指定する
538デフォルトの名無しさん (ワッチョイ eaa2-KIok)
2019/07/30(火) 10:56:49.73ID:/sOZLFOB0 流石です。できました!
539デフォルトの名無しさん (ワッチョイ eaa2-KIok)
2019/07/30(火) 11:21:54.97ID:/sOZLFOB0 もうひとつ質問です。
エクセルは24時を越える時間をセルに入力するとセルの頭に1900/1/1とついてしまいますがこれを消す方法はないでしょうか。
具体的には
Range("d2").Value = DateAdd("s", 14405 * (cells(2, 7).Value + 1), cells(2, 3))
とやって4時間の倍数を計算したとき24時を越えると時間の前に1900/1/1がついてしまいます。
これがついたときこの1900/1/1の部分を消したいのです。
例えばright関数を使って右の時間の部分だけとろうとしてもシリアル値がコピーされるのか、上手く行きません。
エクセルは24時を越える時間をセルに入力するとセルの頭に1900/1/1とついてしまいますがこれを消す方法はないでしょうか。
具体的には
Range("d2").Value = DateAdd("s", 14405 * (cells(2, 7).Value + 1), cells(2, 3))
とやって4時間の倍数を計算したとき24時を越えると時間の前に1900/1/1がついてしまいます。
これがついたときこの1900/1/1の部分を消したいのです。
例えばright関数を使って右の時間の部分だけとろうとしてもシリアル値がコピーされるのか、上手く行きません。
540デフォルトの名無しさん (ワッチョイ eaa2-KIok)
2019/07/30(火) 11:25:40.51ID:/sOZLFOB0 なお書式設定でhh:mm:;ssとしているので見かけ上はちゃんと時間だけ表示されます。
この時間をソートしたとき頭に1900/1/1がついた時間が後ろに回りこんで困っています。
この時間をソートしたとき頭に1900/1/1がついた時間が後ろに回りこんで困っています。
541デフォルトの名無しさん (ドコグロ MMc2-lX5B)
2019/07/30(火) 12:41:51.17ID:q4AvHDZpM >>54
> この時間をソートしたとき頭に1900/1/1がついた時間が後ろに回りこんで困っています。
そりゃ24時間超えてるんだから下に来るのは当たり前
取り敢えず簡単にやるなら
Range("d2").Value = Mod(DateAdd("s", 14405 * (cells(2, 7).Value + 1), cells(2, 3)), 1)
の様にして少数部だけにすればいい
ちゃんと知りたいなら
Excel シリアル値
あたりでググってくれ
> この時間をソートしたとき頭に1900/1/1がついた時間が後ろに回りこんで困っています。
そりゃ24時間超えてるんだから下に来るのは当たり前
取り敢えず簡単にやるなら
Range("d2").Value = Mod(DateAdd("s", 14405 * (cells(2, 7).Value + 1), cells(2, 3)), 1)
の様にして少数部だけにすればいい
ちゃんと知りたいなら
Excel シリアル値
あたりでググってくれ
542デフォルトの名無しさん (スッップ Sdaa-3Utc)
2019/07/30(火) 19:06:59.93ID:WgMpTdZUd どれも初心者が陥る有りがちな罠。
中級者以上なら皆知ってる。
中級者以上なら皆知ってる。
543デフォルトの名無しさん (ワッチョイ eaa2-KIok)
2019/07/30(火) 19:48:55.40ID:/sOZLFOB0 >>541
mod関数を使って余りを求める発想は恐れ入りました。
しかし、コピペで上手く動作しなかったので、シリアル値が1以上だと表示されることに注目して
if文を使って1以上ならシリアル値から−1するようにコードを書き換えました。
今のところ上手く動いてますがmod関数を使った余りを求める方法のほうが遥かにスマートなので
試行錯誤しながらmod関数を取り入れてみたいと思います。
ありがとうございました!
mod関数を使って余りを求める発想は恐れ入りました。
しかし、コピペで上手く動作しなかったので、シリアル値が1以上だと表示されることに注目して
if文を使って1以上ならシリアル値から−1するようにコードを書き換えました。
今のところ上手く動いてますがmod関数を使った余りを求める方法のほうが遥かにスマートなので
試行錯誤しながらmod関数を取り入れてみたいと思います。
ありがとうございました!
544デフォルトの名無しさん (ドコグロ MMc2-lX5B)
2019/07/30(火) 20:02:47.84ID:q4AvHDZpM >>543
まあ本来modとか剰余とかは整数にしか定義されてないからExcelがちょっと異常だと思ってた方がいいと思うよ
まあ本来modとか剰余とかは整数にしか定義されてないからExcelがちょっと異常だと思ってた方がいいと思うよ
545デフォルトの名無しさん (ドコグロ MMc2-LsNC)
2019/07/30(火) 20:27:28.12ID:AKu0TaFKM546デフォルトの名無しさん (ドコグロ MM7f-lX5B)
2019/07/31(水) 06:47:02.32ID:xZH8peU8M すきあらばマウンティングとかw
547デフォルトの名無しさん (ワッチョイ 8a59-ySdJ)
2019/07/31(水) 07:02:37.78ID:Pk+8r5fC0 マウント関数
548デフォルトの名無しさん (ワッチョイ 6a57-/0C9)
2019/07/31(水) 13:15:14.27ID:d2gdTfTi0549デフォルトの名無しさん (ワッチョイ 46f7-2+fp)
2019/07/31(水) 22:27:47.84ID:bMN05+Sd0 時間を24以上にしたいなら
表示形式で[hh]:mmみたいに角括弧つける方法もある
表示形式で[hh]:mmみたいに角括弧つける方法もある
550デフォルトの名無しさん (ドコグロ MM93-EOJ1)
2019/08/01(木) 06:52:12.88ID:dXXftso1M551デフォルトの名無しさん (ワッチョイ cbf2-dfB4)
2019/08/01(木) 22:46:09.22ID:DllCcR/k0 時刻が昇順に見えなくておかしいなら[hh]:mmで昇順に見えるよ
552デフォルトの名無しさん (ワッチョイ 23da-7ShF)
2019/08/01(木) 23:23:27.20ID:nCBAvKB70 コールバック関数をどういう状況で使うのか分からないんですけど、
↓こんな状況で使う、で合ってますか?
Sub Test()
この中で、関数Aを実行したい場合と、関数Bを実行したい場合がある。
If文で、関数Aと関数Bを分岐するのは嫌。
End Sub
↓こんな状況で使う、で合ってますか?
Sub Test()
この中で、関数Aを実行したい場合と、関数Bを実行したい場合がある。
If文で、関数Aと関数Bを分岐するのは嫌。
End Sub
553デフォルトの名無しさん (ワッチョイ 1b94-QwzI)
2019/08/01(木) 23:25:07.45ID:i4bRK0c30 今すぐ実行しないけど、何を呼ぶかは今決めておきたい時
554デフォルトの名無しさん (アウアウウー Sa09-8o7j)
2019/08/02(金) 00:58:24.36ID:EdsLlVlVa 依存関係を逆転するんだよ
AがBを呼ぶ場合、普通はAがBに依存するだろ?
コールバックやインターフェイスを使うことで、AがBに依存しないままでBを呼ぶことができる
それによりAを変更することなくBを別の実装Cに差し替えることが可能になり、Aの再利用性が高まる
まあVBAにはそんな小難しい概念は全く必要ないから忘れていい
AがBを呼ぶ場合、普通はAがBに依存するだろ?
コールバックやインターフェイスを使うことで、AがBに依存しないままでBを呼ぶことができる
それによりAを変更することなくBを別の実装Cに差し替えることが可能になり、Aの再利用性が高まる
まあVBAにはそんな小難しい概念は全く必要ないから忘れていい
555デフォルトの名無しさん (ワッチョイ 1b68-0ks1)
2019/08/02(金) 06:30:07.60ID:8FKwQRXt0 コールバックは非同期だとめちゃくちゃ便利だけどvbaみたいに一本の処理が続く言語ではあんまり意味が無い
独自関数のイベントハンドラすら無いなら尚更
独自関数のイベントハンドラすら無いなら尚更
556デフォルトの名無しさん (スッップ Sd43-Oq87)
2019/08/02(金) 13:06:20.71ID:CGHTW3BLd コールバックは非常に重要なんだけどVBAで出てくるのはサブクラスやフックなんかの高度な話の時や、コールバック使用を前提とするWin32APIの時だな。
557デフォルトの名無しさん (ワッチョイ 2301-dfB4)
2019/08/04(日) 15:16:30.47ID:5ZS1G+AH0 ・Microsoft HTML Object Library
・Microsoft Internet Controls
これらを参照したプログラムを社内で組んで使っています。
ベースとなるIE上のページにあるいくつかのリンク先から必要な情報を
とりだしてワークシートに並べるだけの単純なものです
これまでWindows7(64bit)+Excel2010だったのですが
Windows10+Excel2016に近々移行するという話が出ています
そのまま使い続けられたらいいなと思っているのですが、
何か明らかに問題となるような事項はご存じでしょうか?
自分で組んだものなので、修正はできるのですが、アクセスしにくい場所にあるので
事前に知っておくことができれば対応しやすいなと思っています
・Microsoft Internet Controls
これらを参照したプログラムを社内で組んで使っています。
ベースとなるIE上のページにあるいくつかのリンク先から必要な情報を
とりだしてワークシートに並べるだけの単純なものです
これまでWindows7(64bit)+Excel2010だったのですが
Windows10+Excel2016に近々移行するという話が出ています
そのまま使い続けられたらいいなと思っているのですが、
何か明らかに問題となるような事項はご存じでしょうか?
自分で組んだものなので、修正はできるのですが、アクセスしにくい場所にあるので
事前に知っておくことができれば対応しやすいなと思っています
558デフォルトの名無しさん (ワッチョイ fdce-7ShF)
2019/08/04(日) 15:50:09.98ID:VJisWwvJ0559デフォルトの名無しさん (ワッチョイ 2301-dfB4)
2019/08/04(日) 17:49:24.07ID:5ZS1G+AH0560デフォルトの名無しさん (ワッチョイ 1b68-0ks1)
2019/08/04(日) 18:18:52.51ID:wM8jMXaC0 IEオブジェクトはそろそろやめた方が良いね
561デフォルトの名無しさん (ワンミングク MMa3-QwzI)
2019/08/04(日) 18:58:46.79ID:6Wul5V0eM 読み込み完了を確実に知る手段がないからなReadyStateあてにならないし
562デフォルトの名無しさん (ワッチョイ 1b68-0ks1)
2019/08/04(日) 19:10:37.00ID:wM8jMXaC0 ajaxがあるともう無理
563デフォルトの名無しさん (ワッチョイ fdce-7ShF)
2019/08/04(日) 19:47:17.29ID:VJisWwvJ0 >>561
実は方法はあるんだけど、あんまりスマートじゃないんで他人の使うアプリでは採用しづらい
実は方法はあるんだけど、あんまりスマートじゃないんで他人の使うアプリでは採用しづらい
564デフォルトの名無しさん (ワッチョイ 23da-7ShF)
2019/08/04(日) 21:08:59.72ID:ct85luz10 On Error〜 と Do Loop ?
565デフォルトの名無しさん (ワッチョイ 1b68-0ks1)
2019/08/04(日) 21:21:12.54ID:wM8jMXaC0 doloopで取得する方法って無限ループになりそうで怖い
566デフォルトの名無しさん (ワッチョイ f505-zMmr)
2019/08/04(日) 23:22:30.08ID:wIzeuvQb0 Excelでソースを見られないようにする方法はありますか?
プロジェクトのパスワードはすぐに突破されるので
プロジェクトのパスワードはすぐに突破されるので
567デフォルトの名無しさん (ワッチョイ 1b68-0ks1)
2019/08/04(日) 23:24:28.94ID:wM8jMXaC0 無いよ
568デフォルトの名無しさん (ワッチョイ 1b68-0ks1)
2019/08/04(日) 23:25:56.68ID:wM8jMXaC0 と思ったけどスマン
dllにして読み込む形なら結構行けるんじゃないかと思った
dllにして読み込む形なら結構行けるんじゃないかと思った
5691=”ー1”、Null=”” (ワッチョイ f5ad-zwOC)
2019/08/05(月) 02:53:35.25ID:nP4zzQcy0 見た目比較、柔らか比較、直観比較、なんて言うんでしょうね?
どうググればいいのか
スレチなのかどうか
VBAに限らず、C#でも結局、空文字連結が最良だった印象
でも問題にしたい基本はExcel VBA
If A & ””=B & ”” Then
というのは、数字を1セルずつ入力すると数値になるけど、配列でまとめて入れると文字になったり
でも単純に「1」なら「1」なのだとしたい場合
ちなみにCStrはNullでエラーになるので&””の方が便利
便利だけでなく、速度も圧倒的に&””の方が速い
(ちなみにセルのTextプロパティもめっちゃ遅い)
ちなみにセルをString変数に代入してから比較する方が、&””より1〜2割速い
セルにNullを入力しても空文字になるので、セル側には使える
でも用途限定&ソース増えるので、よほどの大量処理で困らない限り、一般的には&””が安定かな
でも昔、「なんで空文字連結してるの?」って誰かに怒られたことがあり、なんとなく後ろめたい
でもテストを重ねるうちに例外に気付き、最初からやっときゃ良かったじゃんとなる
どうなんですかね?
どうググればいいのか
スレチなのかどうか
VBAに限らず、C#でも結局、空文字連結が最良だった印象
でも問題にしたい基本はExcel VBA
If A & ””=B & ”” Then
というのは、数字を1セルずつ入力すると数値になるけど、配列でまとめて入れると文字になったり
でも単純に「1」なら「1」なのだとしたい場合
ちなみにCStrはNullでエラーになるので&””の方が便利
便利だけでなく、速度も圧倒的に&””の方が速い
(ちなみにセルのTextプロパティもめっちゃ遅い)
ちなみにセルをString変数に代入してから比較する方が、&””より1〜2割速い
セルにNullを入力しても空文字になるので、セル側には使える
でも用途限定&ソース増えるので、よほどの大量処理で困らない限り、一般的には&””が安定かな
でも昔、「なんで空文字連結してるの?」って誰かに怒られたことがあり、なんとなく後ろめたい
でもテストを重ねるうちに例外に気付き、最初からやっときゃ良かったじゃんとなる
どうなんですかね?
5701=”1”、Null=”” (ワッチョイ f5ad-zwOC)
2019/08/05(月) 02:54:38.57ID:nP4zzQcy0 あれ、1=”ー1”ってなんだw
1=”1”ね
1=”1”ね
571デフォルトの名無しさん (ワッチョイ fdce-7ShF)
2019/08/05(月) 06:35:19.95ID:fZ1grq280 >>569
型変換のために空文字列を連結したり0を足すのは、ワークシート上ではよくやるけどVBAでは避けた方がいい
セルの表示内容を文字列で欲しい時はTextプロパティを使うのがセオリーだし、自分でも書いてるけどString型の変数に代入するべき
型変換のために空文字列を連結したり0を足すのは、ワークシート上ではよくやるけどVBAでは避けた方がいい
セルの表示内容を文字列で欲しい時はTextプロパティを使うのがセオリーだし、自分でも書いてるけどString型の変数に代入するべき
572デフォルトの名無しさん (スプッッ Sd03-Oq87)
2019/08/05(月) 09:21:52.72ID:DamzU/6ud >>571
Textプロパティは使わねえな。
Textプロパティは使わねえな。
573デフォルトの名無しさん (ワッチョイ a5da-dfB4)
2019/08/05(月) 11:48:01.13ID:9MgYLk7e0 >>558横からすみません
すごく苦労した部分の詳細や対応策を教えていただけないでしょうか
すごく苦労した部分の詳細や対応策を教えていただけないでしょうか
574デフォルトの名無しさん (ワッチョイ fdce-7ShF)
2019/08/05(月) 13:25:50.95ID:fZ1grq280 >>573
俺が試行錯誤の末に発見したのは、IEオブジェクトのVisibleプロパティが変化するとReadyStateが更新される、ということ
だから
objIE.Visible = False
objIE.Visible = True
という2行を読み込み完了チェックのループに挿入した
あと、IEが非アクティブになるとエラーで止まることがあるので、マクロ実行中は一切さわってはいけないという制約まで付く
ここまでやって、画面がものすごい勢いで点滅するけど、一応の結果は得られるようになった
あと、Win10の次の大型アップデートでIEの動作がまた変わるかも知れないので、いつまでも使える保証がない
JavaScriptやcookieやセッションの管理などが必要なければXMLHTTPを使った方が簡単で確実
俺が試行錯誤の末に発見したのは、IEオブジェクトのVisibleプロパティが変化するとReadyStateが更新される、ということ
だから
objIE.Visible = False
objIE.Visible = True
という2行を読み込み完了チェックのループに挿入した
あと、IEが非アクティブになるとエラーで止まることがあるので、マクロ実行中は一切さわってはいけないという制約まで付く
ここまでやって、画面がものすごい勢いで点滅するけど、一応の結果は得られるようになった
あと、Win10の次の大型アップデートでIEの動作がまた変わるかも知れないので、いつまでも使える保証がない
JavaScriptやcookieやセッションの管理などが必要なければXMLHTTPを使った方が簡単で確実
575デフォルトの名無しさん (ワッチョイ 75f1-xVkp)
2019/08/05(月) 14:36:12.11ID:RvbOnux20 タブブラウザで新しいタブに追加する方法はあれから発明されましたか?
576デフォルトの名無しさん (ワッチョイ a5da-dfB4)
2019/08/05(月) 16:28:51.96ID:9MgYLk7e0577デフォルトの名無しさん (スッップ Sd43-nSnx)
2019/08/05(月) 18:35:15.20ID:nHSuKmq3d 今でもIEなんて使ってるのお前らだけだろ
あんたの会社はセキュリティとか気にしないんだね
あんたの会社はセキュリティとか気にしないんだね
578デフォルトの名無しさん (ワッチョイ 1b68-0ks1)
2019/08/05(月) 18:46:21.41ID:u4C0UjsS0 >ここまでやって、画面がものすごい勢いで点滅する
なると思ったけどやっぱりなるんだ
>>577
ブラウザの解釈が必要なところはどうしてもあるんだよ
ただのスクレイピングでいいなら色々な方法があるけどやっぱりキツイ
なると思ったけどやっぱりなるんだ
>>577
ブラウザの解釈が必要なところはどうしてもあるんだよ
ただのスクレイピングでいいなら色々な方法があるけどやっぱりキツイ
579デフォルトの名無しさん (ワッチョイ 2d7c-m5JN)
2019/08/05(月) 19:20:06.57ID:VaXANPIk0 textプロパティ遅いからデータ量が多くない時しか使えない
580デフォルトの名無しさん (ワッチョイ 2d7c-m5JN)
2019/08/05(月) 19:34:11.66ID:VaXANPIk0 >>569
セルに数字入れたら文字になるというのは、RangeのValueに入れてるからとかでは
セルに数字入れたら文字になるというのは、RangeのValueに入れてるからとかでは
581デフォルトの名無しさん (ワッチョイ 1b68-0ks1)
2019/08/05(月) 19:55:00.01ID:u4C0UjsS0 >>569
自分一人しか見ないならどっちでも良いよ
他の人への見やすさを考えると関数の方が良い
文字列連結で考えられるのは
・仕様を検索し辛い。str()なら一発で見つかるが、文字列連結によるエラーなどはどう探していいのか分からん
・そもそも何をしているのかも分かりづらい。本来は文字列を入れるつもりだったようにも見える
・この記述でどういうエラーや分岐が発生するか不明。nullやDATE型が入ってる場合など
見た目比較
tostring = Str(1)
tostring = 1 & ""
どうしても使いたいならコメントをつけるなどした方が以下も知れないけどこれもアホらしいな
tostring = 1 & "" '文字列化
自分一人しか見ないならどっちでも良いよ
他の人への見やすさを考えると関数の方が良い
文字列連結で考えられるのは
・仕様を検索し辛い。str()なら一発で見つかるが、文字列連結によるエラーなどはどう探していいのか分からん
・そもそも何をしているのかも分かりづらい。本来は文字列を入れるつもりだったようにも見える
・この記述でどういうエラーや分岐が発生するか不明。nullやDATE型が入ってる場合など
見た目比較
tostring = Str(1)
tostring = 1 & ""
どうしても使いたいならコメントをつけるなどした方が以下も知れないけどこれもアホらしいな
tostring = 1 & "" '文字列化
582デフォルトの名無しさん (ワッチョイ 2d7c-m5JN)
2019/08/05(月) 20:12:10.62ID:VaXANPIk0 str(1)は"1"にならない
strは符号付文字列化だから
strは符号付文字列化だから
583デフォルトの名無しさん (ワッチョイ 1b68-0ks1)
2019/08/05(月) 20:48:05.94ID:u4C0UjsS0 あぁCstrじゃないとダメなんだっけ
ずっと忘れてたわありがとう
今までのコードかなり間違えてる気がする
ずっと忘れてたわありがとう
今までのコードかなり間違えてる気がする
584デフォルトの名無しさん (スップ Sd03-8X4L)
2019/08/05(月) 20:55:56.77ID:bZJ9L0Ead 良く使う文字列変数名ってみんなどんな?
585デフォルトの名無しさん (ワッチョイ 1b68-0ks1)
2019/08/05(月) 21:21:35.78ID:u4C0UjsS0 名前やら住所やら普通に2バイト変数名使いまくる
586デフォルトの名無しさん (ワッチョイ 2d7c-m5JN)
2019/08/05(月) 21:29:12.71ID:VaXANPIk0587デフォルトの名無しさん (ワッチョイ a5da-dfB4)
2019/08/05(月) 21:48:48.29ID:9MgYLk7e0 >>577
IEの代わりに何を使っているのですか?
IEの代わりに何を使っているのですか?
588デフォルトの名無しさん (ワッチョイ 23da-7ShF)
2019/08/05(月) 22:39:27.27ID:eFIMT7Jx0 仮にIE使えなくなったら、どうすりゃいいんだろう?
UIAutomationでも使うの?
UIAutomationでも使うの?
589デフォルトの名無しさん (ワッチョイ fdce-7ShF)
2019/08/05(月) 23:06:57.61ID:fZ1grq280 >>588
原理上は、EdgeでもChromeでもどんなブラウザでもVBAや外部アプリから操作できる
あとは必要なライブラリのインストールが許可されるかどうかで決まる
とりあえずEdgeは簡単にコントロールできるよ
https://www.ka-net.org/blog/?p=6018
原理上は、EdgeでもChromeでもどんなブラウザでもVBAや外部アプリから操作できる
あとは必要なライブラリのインストールが許可されるかどうかで決まる
とりあえずEdgeは簡単にコントロールできるよ
https://www.ka-net.org/blog/?p=6018
590デフォルトの名無しさん (ワッチョイ 75f1-xVkp)
2019/08/05(月) 23:11:08.42ID:RvbOnux20 タブブラウザで新しいタブに追加する方法はあれから発明されましたか?
591デフォルトの名無しさん (ワッチョイ 1b68-0ks1)
2019/08/05(月) 23:14:43.05ID:u4C0UjsS0592デフォルトの名無しさん (ワッチョイ 75f1-xVkp)
2019/08/05(月) 23:41:12.85ID:RvbOnux20 ウインドウが二つになってしまうんですよ。タブじゃなく。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★3 [ぐれ★]
- XやChatGPTで広範囲の通信障害 投稿や閲覧できず [蚤の市★]
- 【芸能】日中関係悪化でエンタメ業界に大ダメージ… JO1の中国でのイベント中止、邦画は公開延期、STARTOアイドルへの影響も [冬月記者★]
- 現役猟師・東出昌大、クマ被害続出も過熱する報道に「クマはそんな危ないもんじゃない」理由語る [muffin★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
