!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑2行に減ってるけど、同じ内容を3行に増やして貼り付けること
ExcelのVBAに関する質問スレ
コード書き込みや作成依頼もOK
次スレは>>980が立てること
無理なら細かく安価指定
※前スレ
Excel VBA 質問スレ Part75
https://mevius.5ch.net/test/read.cgi/tech/1644384272/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
Excel VBA 質問スレ Part76
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ブーイモ MMff-XZ6m)
2022/05/01(日) 02:23:41.78ID:2t63WK/jM21デフォルトの名無しさん (ワンミングク MMbf-+wkU)
2022/05/04(水) 21:05:48.55ID:hxvZ+FeqM >>20
所有権の問題ではなく馬鹿だからわからないだけでは?
所有権の問題ではなく馬鹿だからわからないだけでは?
22デフォルトの名無しさん (ワッチョイ 2701-XZ6m)
2022/05/04(水) 21:14:48.05ID:Bmz10qTz0 申し訳ありません、具体的なスペックが提示できないようではアドバイスも難しいですもんね。
これまで頂いたアドバイスでもう少し試行錯誤してみたいと思います。ありがとうございました。
これまで頂いたアドバイスでもう少し試行錯誤してみたいと思います。ありがとうございました。
23デフォルトの名無しさん (ワッチョイ dfda-Nh0L)
2022/05/04(水) 22:17:07.14ID:hNQ/TBre0 数秒待たせればエラーに成らないなら、原因判明するまでは待たせる方式で
或いは
最終的に鳥瞰図が欲しいなら、数値データをDXFとして出力してjw-cadとかで描画とか
https://www.hakko.co.jp/javascript/soft011.htm 作者に問い合わせしながら検討とかも
https://www.apptec.co.jp/technical_report/pdf/vol24/treport_vol_24-06.pdf
https://movies.woxikon.co.nz/excel-%E3%81%A7-cad-%E5%9B%B3%E9%9D%A2-%E4%BD%9C%E6%88%90
https://www.tipsfound.com/excel/05038
https://www.nichibun-g.co.jp/data/education/ict-education/archive/31/02.php
この辺は既にご承知かも ぜんぶちゃんと目を通した訳では無いから抜粋ということで
グラフ機能を応用して鳥瞰図(風)にしてるってことかな
或いは
最終的に鳥瞰図が欲しいなら、数値データをDXFとして出力してjw-cadとかで描画とか
https://www.hakko.co.jp/javascript/soft011.htm 作者に問い合わせしながら検討とかも
https://www.apptec.co.jp/technical_report/pdf/vol24/treport_vol_24-06.pdf
https://movies.woxikon.co.nz/excel-%E3%81%A7-cad-%E5%9B%B3%E9%9D%A2-%E4%BD%9C%E6%88%90
https://www.tipsfound.com/excel/05038
https://www.nichibun-g.co.jp/data/education/ict-education/archive/31/02.php
この辺は既にご承知かも ぜんぶちゃんと目を通した訳では無いから抜粋ということで
グラフ機能を応用して鳥瞰図(風)にしてるってことかな
24デフォルトの名無しさん (ワッチョイ 2701-XZ6m)
2022/05/04(水) 23:12:41.36ID:Bmz10qTz0 >>23
ありがとうございます。勉強になります。
今のところはエラーが出た際バッファーの時間を調整して対応しています。
とりあえずは動いているので良いのですが書き方としてどうなのだろうと思いまして…
もっとスマートに解決方法があればと思い質問させて頂きました。
アドバイス頂きありがとうございます。アドバイスを元に検討してみたいと思います。
ありがとうございます。勉強になります。
今のところはエラーが出た際バッファーの時間を調整して対応しています。
とりあえずは動いているので良いのですが書き方としてどうなのだろうと思いまして…
もっとスマートに解決方法があればと思い質問させて頂きました。
アドバイス頂きありがとうございます。アドバイスを元に検討してみたいと思います。
25デフォルトの名無しさん (ワッチョイ 2701-I+xZ)
2022/05/04(水) 23:54:17.61ID:4EN2kx2R0 >>24
むかしファイルメーカーから画像を取り出してExcelに貼り付けるマクロ書いたことあるわ。
クリップボードからExcelに貼るときにちょいちょいエラーが出て苦労した。
最終的にはエラーが出たところからリランできるようにして人力で最後まで走り切った。
継続的に長い期間使うマクロではなかったんでね。
クリップボードって入れ終わるタイミングが掴めないから処理が難しいね。
オレが調べた限りでは完全に技術的に解決する方法は見つけられなかった。
完全自動化は一旦棚に上げておいて、人間の補助も込みで運用を考えた方が現実的かも。
むかしファイルメーカーから画像を取り出してExcelに貼り付けるマクロ書いたことあるわ。
クリップボードからExcelに貼るときにちょいちょいエラーが出て苦労した。
最終的にはエラーが出たところからリランできるようにして人力で最後まで走り切った。
継続的に長い期間使うマクロではなかったんでね。
クリップボードって入れ終わるタイミングが掴めないから処理が難しいね。
オレが調べた限りでは完全に技術的に解決する方法は見つけられなかった。
完全自動化は一旦棚に上げておいて、人間の補助も込みで運用を考えた方が現実的かも。
26デフォルトの名無しさん (ワッチョイ 67da-bwV9)
2022/05/05(木) 00:43:02.91ID:vV+xUHQR0 IEとセッション共有するにはどうすればいい?
27デフォルトの名無しさん (スププ Sdff-hviI)
2022/05/05(木) 08:37:44.29ID:GOdKeYkud28デフォルトの名無しさん (ワッチョイ df4f-bbcD)
2022/05/05(木) 09:37:07.07ID:yaYLZP+d0 >>26
まずIEはセッションなど持っていない。
そして今IE は使えないだろう?
強制的にEdgeにされるはずだ。
そしてそのEdge も当然セッションなど持っていない。
EdgeもIEもクライアントサイドのものだからだ。
セッションはサーバーサイドの概念だからな。
そしてサーバーサイドをEXCELのVBA で制御するとか意味分からん。
大人しくAsp.NetでもやっておくかせめてVBS で制御しとけ。
まずIEはセッションなど持っていない。
そして今IE は使えないだろう?
強制的にEdgeにされるはずだ。
そしてそのEdge も当然セッションなど持っていない。
EdgeもIEもクライアントサイドのものだからだ。
セッションはサーバーサイドの概念だからな。
そしてサーバーサイドをEXCELのVBA で制御するとか意味分からん。
大人しくAsp.NetでもやっておくかせめてVBS で制御しとけ。
29デフォルトの名無しさん (ワッチョイ 67da-bwV9)
2022/05/05(木) 11:18:53.52ID:vV+xUHQR0 わざとだろうけど、EdgeでもCookieでもいいよ。
30デフォルトの名無しさん (ワッチョイ 0702-Nh0L)
2022/05/05(木) 11:27:47.75ID:BSjK1PJD0 >>11
ありがとうございます。
ありがとうございます。
31デフォルトの名無しさん (ワッチョイ 8701-6zUF)
2022/05/05(木) 16:06:00.40ID:FeY8iOM40 【ひろゆき】テレビ見る奴はバカ!?正論論破!
「テレビ見てる奴バカすぎだろ!!マジでバカしかいない!!」聞けば納得の正論!!
【ひろゆき】みなさん要注意です…テレビ見ると頭悪くなります
⇒テレビが馬鹿向けに作られてる衝撃の理由がヤバ過ぎる…
【ひろゆき】マジで「ざまあみろ」って思いましたね。
●●する奴にテレビ業界は破壊されました…ひろゆきがテレビがオワコン化した理由を話す
【ひろゆき】芸能界の闇!松本人志とか東野幸治はエクセルすら使えないんだよ?
ワイドナショーで言ってたw【教えて!ひろゆき先生/切り抜き】
【ひろゆき】なぜテレビは面白くなくなったのか?
その理由をひろゆきとひげおやじが分析する【切り抜き/論破/TV】
「テレビ見てる奴バカすぎだろ!!マジでバカしかいない!!」聞けば納得の正論!!
【ひろゆき】みなさん要注意です…テレビ見ると頭悪くなります
⇒テレビが馬鹿向けに作られてる衝撃の理由がヤバ過ぎる…
【ひろゆき】マジで「ざまあみろ」って思いましたね。
●●する奴にテレビ業界は破壊されました…ひろゆきがテレビがオワコン化した理由を話す
【ひろゆき】芸能界の闇!松本人志とか東野幸治はエクセルすら使えないんだよ?
ワイドナショーで言ってたw【教えて!ひろゆき先生/切り抜き】
【ひろゆき】なぜテレビは面白くなくなったのか?
その理由をひろゆきとひげおやじが分析する【切り抜き/論破/TV】
32デフォルトの名無しさん (ワッチョイ 9f02-PvPk)
2022/05/07(土) 10:41:14.26ID:NJT6jW780 Sub test()
Dim high As Long
Dim str As String
Dim num As Integer
'a
str = "転"
str = Asc(str)
str = Hex(str)
a = str
'b
str = "転"
str = Hex(Asc(str))
b = str
'c
str = "転"
num = Asc(str)
str = Hex(num)
c = str
End Sub
a=FFFFFFFFFFFF935D b =935D c=935D
aとbで結果が異なる理由が分かりません。
cはぼんやりと型の違いなのかと思いテストしたところ、bと同じ結果になりました。
しかし、aもbもstring型のstrに納めているので、「どうして結果が違うのか」とより
謎を強めてしまいました。なぜ、aとbで結果が異なるのか教えてください。
Dim high As Long
Dim str As String
Dim num As Integer
'a
str = "転"
str = Asc(str)
str = Hex(str)
a = str
'b
str = "転"
str = Hex(Asc(str))
b = str
'c
str = "転"
num = Asc(str)
str = Hex(num)
c = str
End Sub
a=FFFFFFFFFFFF935D b =935D c=935D
aとbで結果が異なる理由が分かりません。
cはぼんやりと型の違いなのかと思いテストしたところ、bと同じ結果になりました。
しかし、aもbもstring型のstrに納めているので、「どうして結果が違うのか」とより
謎を強めてしまいました。なぜ、aとbで結果が異なるのか教えてください。
33デフォルトの名無しさん (アウアウウー Sa1f-oKCf)
2022/05/07(土) 11:01:22.01ID:QtF4T6fHa ascの結果をstringに変換しないで入れたからかな
出先なので試せないが
出先なので試せないが
34デフォルトの名無しさん (アウアウウー Sa1f-cwrN)
2022/05/07(土) 11:52:42.37ID:/qcwjpRWa 'a
str = "転"
str = Asc(str)
Debug.Print str
str = Hex(str)
Debug.Print str
a = str
ってやってみて自分の思った通りになってるか確認してみそ
str = "転"
str = Asc(str)
Debug.Print str
str = Hex(str)
Debug.Print str
a = str
ってやってみて自分の思った通りになってるか確認してみそ
35デフォルトの名無しさん (ワッチョイ b7ce-PvPk)
2022/05/07(土) 11:59:35.71ID:WpJq4eDb036デフォルトの名無しさん (ワッチョイ b7ce-PvPk)
2022/05/07(土) 12:05:46.33ID:WpJq4eDb0 公式ドキュメントには、Hex関数の返り値は8桁以下の文字列と書いてあるのに16桁返ってくるな
どういうことだ?
https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/hex-function
どういうことだ?
https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/hex-function
37デフォルトの名無しさん (ワッチョイ b7ce-PvPk)
2022/05/07(土) 12:10:46.75ID:WpJq4eDb0 暗黙の型変換は必要最小限の型に変換されるってルールだったはずで、そのロジックに何か問題がある気がする
文字コード(-27811)はIntegerになるはずがLongLongに変換されてしまっていて、さらにHex関数がなぜかエラーを返さない
文字コード(-27811)はIntegerになるはずがLongLongに変換されてしまっていて、さらにHex関数がなぜかエラーを返さない
38デフォルトの名無しさん (ワッチョイ b7ce-PvPk)
2022/05/07(土) 13:00:38.34ID:WpJq4eDb0 うーん、これはちょっと想定外の結果、かなあ
知らないでいるとハマりそうだわ
Sub test2()
s = "&H8"
For i = 1 To 15
s = s & "0"
Debug.Print Hex(s)
Next
End Sub
知らないでいるとハマりそうだわ
Sub test2()
s = "&H8"
For i = 1 To 15
s = s & "0"
Debug.Print Hex(s)
Next
End Sub
39デフォルトの名無しさん (ワッチョイ 17da-zDU0)
2022/05/07(土) 15:18:31.97ID:QipuKWLV0 >>32
strは文字列型だからaの場合str = Asc("転")でやっていることは実質的にstr = cstr(Asc("転")).
だからa,b,cはそれぞれ,hex(cstr(Asc("転"))),hex(Asc("転")),hex(Asc"転"))となりaだけ途中で数字ではなくて文字列にかわっているので
対応するhexの値が異なるのは当然.
strは文字列型だからaの場合str = Asc("転")でやっていることは実質的にstr = cstr(Asc("転")).
だからa,b,cはそれぞれ,hex(cstr(Asc("転"))),hex(Asc("転")),hex(Asc"転"))となりaだけ途中で数字ではなくて文字列にかわっているので
対応するhexの値が異なるのは当然.
40デフォルトの名無しさん (スップ Sd2a-414f)
2022/05/07(土) 15:39:23.00ID:Be/sY8NCd 型を意識しないで作るVBAerによくある勘違いというだけ
41デフォルトの名無しさん (アウアウウー Sa1f-oKCf)
2022/05/07(土) 16:06:22.67ID:7L5Eu3N/a >>38
型宣言しないタイプ?
型宣言しないタイプ?
42デフォルトの名無しさん (ワッチョイ 6a7d-4pAe)
2022/05/07(土) 17:29:10.04ID:stouWQDp0 VBAってマトモな会社は使用禁止でしょ
43デフォルトの名無しさん (ワッチョイ b7ce-PvPk)
2022/05/07(土) 19:21:47.63ID:WpJq4eDb044デフォルトの名無しさん (ワッチョイ b7ce-PvPk)
2022/05/07(土) 19:23:32.20ID:WpJq4eDb0 >>39-40
公式ドキュメントに8文字以下と書いてあるのに、たまに16文字返ってくるのは単なる勘違いで済む問題じゃないと思うぞ
公式ドキュメントに8文字以下と書いてあるのに、たまに16文字返ってくるのは単なる勘違いで済む問題じゃないと思うぞ
45デフォルトの名無しさん (アウアウウー Sa1f-cwrN)
2022/05/07(土) 20:33:59.56ID:gH0nu0qIa >>44
64bit 版のドキュメントが間に合ってないだけだろ
64bit 版のドキュメントが間に合ってないだけだろ
46デフォルトの名無しさん (ワッチョイ 17da-oDvp)
2022/05/07(土) 21:40:19.85ID:QipuKWLV0 >>44
実際の結果と説明が食い違ってたら説明の方が間違っている(修正が遅れている)だけだと思うが
実際の結果と説明が食い違ってたら説明の方が間違っている(修正が遅れている)だけだと思うが
47デフォルトの名無しさん (ワッチョイ b7ce-PvPk)
2022/05/07(土) 21:55:14.08ID:WpJq4eDb0 Officeが完全64bit対応になったのは2010から
12年遅れか……
12年遅れか……
48デフォルトの名無しさん (アウアウウー Sa1f-cwrN)
2022/05/07(土) 22:11:45.00ID:9QKKUGlra >>46
まあ単なるバグの可能性は "0" ではないけど
まあ単なるバグの可能性は "0" ではないけど
49デフォルトの名無しさん (ワッチョイ 8f68-e+q+)
2022/05/07(土) 22:14:36.93ID:T2FkQFbN0 >>38
これはバグでは
これはバグでは
50デフォルトの名無しさん (ワッチョイ 0b93-vVOv)
2022/05/07(土) 22:18:37.86ID:cppQitqZ0 >>47
64bitが標準になったのは2019からだけど
64bitが標準になったのは2019からだけど
5132 (ワッチョイ 9f02-PvPk)
2022/05/08(日) 08:41:56.79ID:mrWBx7yB0 Sub test()
Dim high As Long
Dim str As String
Dim num As Integer
'a
str = "転"
str = Asc(str)
str = Hex(str)
a = str
'a´
str = "転"
str = Asc(str)
str = Hex(CInt(str))
ad = str
'b
str = "転"
str = Hex(Asc(str))
str = str
b = str
'c
str = "転"
num = Asc(str)
str = Hex(num)
c = str
ありがとうございます。一旦は納得できました。
Dim high As Long
Dim str As String
Dim num As Integer
'a
str = "転"
str = Asc(str)
str = Hex(str)
a = str
'a´
str = "転"
str = Asc(str)
str = Hex(CInt(str))
ad = str
'b
str = "転"
str = Hex(Asc(str))
str = str
b = str
'c
str = "転"
num = Asc(str)
str = Hex(num)
c = str
ありがとうございます。一旦は納得できました。
52デフォルトの名無しさん (ワッチョイ 8f68-e+q+)
2022/05/08(日) 19:44:09.25ID:J4Oeet0G0 kou
'a
str = "転"
long_ = Asc(str)
'a
str = "転"
long_ = Asc(str)
53デフォルトの名無しさん (ワッチョイ 7eda-PvPk)
2022/05/08(日) 22:42:32.67ID:CUGu1qGH0 high は何のため
54デフォルトの名無しさん (ワッチョイ 2f2f-vjB4)
2022/05/09(月) 03:05:49.72ID:1tzp5qwq055デフォルトの名無しさん (ワッチョイ 43da-WAXe)
2022/05/09(月) 14:49:08.99ID:Ww9cdHsy0 脳内思い込み
一番タチ悪い
一番タチ悪い
56デフォルトの名無しさん (ワッチョイ 3ebb-HNGk)
2022/05/09(月) 18:18:14.33ID:7ATo4dDz0 コピー元のブックのシート上のチェックボックス(ON/OFF)を、
コピー先のブックのシート上のチェックボックス(すべてOFF)に
「チェックボックスのON/OFFの状態を」コピーしたいのですが
そういう命令はありますでしょうか?
[コピー元].Worksheets("シート名").Range("G3:AB5").Copy
[コピー先].Worksheets("シート名").Range("G3:AB5").PasteSpecial xlPasteAll
ではチェックボックスは空白のままなのですが、
「マウスでコピー元のG3:AB5を選ぶ→Ctrl+C→コピー先にCtrl+V」と手動で操作すると
G3:AB5内のチェックボックスのON/OFFもコピーされるので
なにか方法があるのではと思うのですが
すべてをペースト(PasteSpecial xlPasteAll)ではダメなのでしょうか
コピー先のブックのシート上のチェックボックス(すべてOFF)に
「チェックボックスのON/OFFの状態を」コピーしたいのですが
そういう命令はありますでしょうか?
[コピー元].Worksheets("シート名").Range("G3:AB5").Copy
[コピー先].Worksheets("シート名").Range("G3:AB5").PasteSpecial xlPasteAll
ではチェックボックスは空白のままなのですが、
「マウスでコピー元のG3:AB5を選ぶ→Ctrl+C→コピー先にCtrl+V」と手動で操作すると
G3:AB5内のチェックボックスのON/OFFもコピーされるので
なにか方法があるのではと思うのですが
すべてをペースト(PasteSpecial xlPasteAll)ではダメなのでしょうか
57デフォルトの名無しさん (ワッチョイ 6aad-HkNE)
2022/05/10(火) 10:07:55.18ID:4FhYKkQU0 ユーザーフォームのコントロールの位置調整について質問です。
テキストボックスA,B,Cが
A B C
と既に左右の間隔が均等に整列された状態になっており、
一番左にテキストボックスDを追加するとします。
D A B C
この時、A-B間(B-C間も同じ) と D-A間の間隔を同じにしたい場合、
手動計算する(それぞれのLeftプロパティを参照して、差分を手入力する)のではなく、お手軽に設定できる操作はありますか?
マウスのドラッグで D A B C を範囲選択して[書式]-[左右の間隔]-[間隔を均等にする]を選ぶと、
両端(DとC)の位置が固定された上で、その内側(D-A間、A-B間、B-C間)が均等になるだけで、
今回求めている結果にはなりませんでした。
テキストボックスA,B,Cが
A B C
と既に左右の間隔が均等に整列された状態になっており、
一番左にテキストボックスDを追加するとします。
D A B C
この時、A-B間(B-C間も同じ) と D-A間の間隔を同じにしたい場合、
手動計算する(それぞれのLeftプロパティを参照して、差分を手入力する)のではなく、お手軽に設定できる操作はありますか?
マウスのドラッグで D A B C を範囲選択して[書式]-[左右の間隔]-[間隔を均等にする]を選ぶと、
両端(DとC)の位置が固定された上で、その内側(D-A間、A-B間、B-C間)が均等になるだけで、
今回求めている結果にはなりませんでした。
58デフォルトの名無しさん (ラクッペペ MMe6-u2F+)
2022/05/10(火) 10:19:04.03ID:ODIjuWluM 一生に一度しか使用しない機能は実装されません
59デフォルトの名無しさん (ワッチョイ 6ada-PvPk)
2022/05/10(火) 10:49:36.48ID:G5I31YZG0 D A B C を左右均等に並べたいんじゃ無いのか?
D-A-B-C とか、スペースを-で表さないと、コッチからすれば説明文の上下は一緒に読めるんだが?
D---A-B-C とかか?
D-A-B-C とか、スペースを-で表さないと、コッチからすれば説明文の上下は一緒に読めるんだが?
D---A-B-C とかか?
6057 (ワッチョイ 6aad-HkNE)
2022/05/10(火) 11:44:31.14ID:4FhYKkQU0 >>59
スペースをハイフンで示します。
最初の状態
A----B----C
Aの左側にDを追加するとします。
D-A----B----C
マウスのドラッグで DABC を範囲選択して[書式]-[左右の間隔]-[間隔を均等にする]を選んだ場合は、
両端(DとC)の位置が固定された上で、その内側(D-A間、A-B間、B-C間)が均等になるだけ。
この場合は、最初の状態でのA-B間(B-C間)の間隔(スペース4個分)が保持されていません。
D---A---B---C
今回求めている結果
D----A----B----C
スペースをハイフンで示します。
最初の状態
A----B----C
Aの左側にDを追加するとします。
D-A----B----C
マウスのドラッグで DABC を範囲選択して[書式]-[左右の間隔]-[間隔を均等にする]を選んだ場合は、
両端(DとC)の位置が固定された上で、その内側(D-A間、A-B間、B-C間)が均等になるだけ。
この場合は、最初の状態でのA-B間(B-C間)の間隔(スペース4個分)が保持されていません。
D---A---B---C
今回求めている結果
D----A----B----C
61デフォルトの名無しさん (ワッチョイ 6ada-PvPk)
2022/05/10(火) 11:55:55.13ID:G5I31YZG0 Cを必要なだけ右に寄せてからその操作すれば?
ぴったり位置合わせしたいとかなら https://www.moug.net/tech/exvba/0120023.html 辺り参考に
ぴったり位置合わせしたいとかなら https://www.moug.net/tech/exvba/0120023.html 辺り参考に
62デフォルトの名無しさん (ワッチョイ 8f68-e+q+)
2022/05/10(火) 11:58:47.56ID:Q/OuvBXU0 >>56
どのチェックボックス?フォーム?activeX?
どのチェックボックス?フォーム?activeX?
63デフォルトの名無しさん (スププ Sd8a-y2gA)
2022/05/10(火) 13:26:52.13ID:EvytVRjpd65デフォルトの名無しさん (ワッチョイ 6aad-HkNE)
2022/05/10(火) 21:54:52.33ID:4FhYKkQU0 >>61
ありがとうございます。参考にします。
ありがとうございます。参考にします。
6656 (ワッチョイ 3ebb-uszm)
2022/05/11(水) 07:58:45.59ID:VwZpfkps067デフォルトの名無しさん (ワッチョイ 2301-PvPk)
2022/05/12(木) 01:22:53.69ID:UrRQ3K070 'これ実行するとどうなりますか?
'Q1 「 3.2to4.1(14)ng:4>=4 」と
' 「 3.2to4.1(25)ng:4>=4 」になりますか?
'Q2 「 3.7to4(9)ng:4>=4.9 a:3.9 」と
' 「 3.8to4(9)ng:4>=5 a:4 」になりますか?
Sub test()
For i = 1 To 4 Step 1
Select Case i
Case 1
a_from = 3.2: a_to = 4.1: a_max = 4# 'if[4 >= 4]でFalseになる
Case 2
a_from = 4.2: a_to = 5.1: a_max = 5# 'if[5 >= 5]でFalseになるか確認用
Case 3
a_from = 3.7: a_to = 4#: a_max = 4# 'aが3.9までしかいかない
Case 4
a_from = 3.8: a_to = 4#: a_max = 4# 'aが4までいく
End Select
c = 0
Debug.Print "***** from " & a_from & " to " & a_to & " max " & a_max, String(60, "*")
For a = a_from To a_to Step 0.1
For b = 0# To 0.2 Step 0.1
c = c + 1
ab = a / (1 - b)
okng = "ng"
If a_max >= ab Then okng = "OK"
Debug.Print a_from & "to" & a_to & "(" & c & ")" & okng & ":" & a_max & ">=" & Round(ab, 1) _
, "a:" & a, "b:" & b, "max:" & a_max, okng, "ab:" & ab
' Debug.Assert a_max >= a '[4 >= 4]でFalseになる
Next
Next
Next
End Sub
'Q1 「 3.2to4.1(14)ng:4>=4 」と
' 「 3.2to4.1(25)ng:4>=4 」になりますか?
'Q2 「 3.7to4(9)ng:4>=4.9 a:3.9 」と
' 「 3.8to4(9)ng:4>=5 a:4 」になりますか?
Sub test()
For i = 1 To 4 Step 1
Select Case i
Case 1
a_from = 3.2: a_to = 4.1: a_max = 4# 'if[4 >= 4]でFalseになる
Case 2
a_from = 4.2: a_to = 5.1: a_max = 5# 'if[5 >= 5]でFalseになるか確認用
Case 3
a_from = 3.7: a_to = 4#: a_max = 4# 'aが3.9までしかいかない
Case 4
a_from = 3.8: a_to = 4#: a_max = 4# 'aが4までいく
End Select
c = 0
Debug.Print "***** from " & a_from & " to " & a_to & " max " & a_max, String(60, "*")
For a = a_from To a_to Step 0.1
For b = 0# To 0.2 Step 0.1
c = c + 1
ab = a / (1 - b)
okng = "ng"
If a_max >= ab Then okng = "OK"
Debug.Print a_from & "to" & a_to & "(" & c & ")" & okng & ":" & a_max & ">=" & Round(ab, 1) _
, "a:" & a, "b:" & b, "max:" & a_max, okng, "ab:" & ab
' Debug.Assert a_max >= a '[4 >= 4]でFalseになる
Next
Next
Next
End Sub
68デフォルトの名無しさん (ワッチョイ b7ce-PvPk)
2022/05/12(木) 02:12:42.08ID:y5qWaFnT069デフォルトの名無しさん (ワッチョイ be01-S2Xa)
2022/05/13(金) 15:49:14.84ID:m1gysKVC0 Dim a
a = Range("A1:B2")
これだけでaが2×2の配列になるとたった今知ったのですが
このことを手放しに使って良いのでしょうか、それとも邪道だから
Dim a(2, 2)なり要素数まで指定した方が良いのでしょうか。
a = Range("A1:B2")
これだけでaが2×2の配列になるとたった今知ったのですが
このことを手放しに使って良いのでしょうか、それとも邪道だから
Dim a(2, 2)なり要素数まで指定した方が良いのでしょうか。
70デフォルトの名無しさん (ワッチョイ b7ce-PvPk)
2022/05/13(金) 15:56:46.69ID:Bn5ry050071デフォルトの名無しさん (ワッチョイ d35f-PvPk)
2022/05/13(金) 16:05:23.39ID:zF4dJdoD0 それ便利だけど誤読しやすいので静的メソッドにしてる
ArrayExt.FromRange(Me.Range("A1:B2"))
みたいな
ArrayExt.FromRange(Me.Range("A1:B2"))
みたいな
72デフォルトの名無しさん (ワッチョイ 9f5f-pnAN)
2022/05/13(金) 19:41:50.80ID:q/KvZ9/90 officescript調べてみたけど意外と分かりやすかった
これならVBAがなくなっても大丈夫そう
これならVBAがなくなっても大丈夫そう
73デフォルトの名無しさん (ワッチョイ 9f5f-pnAN)
2022/05/13(金) 19:50:05.37ID:q/KvZ9/90 >>69
型使わないとバリアント型だから二次元配列になるわけか
型使わないとバリアント型だから二次元配列になるわけか
74デフォルトの名無しさん (ワッチョイ 9f5f-pnAN)
2022/05/13(金) 19:53:17.10ID:q/KvZ9/90 ちなみに参考にしてる人はこう書いてた
Dim a As Variant
a = Range("A1:B2").Value
Dim a As Variant
a = Range("A1:B2").Value
75デフォルトの名無しさん (エアペラ SDd7-vVOv)
2022/05/13(金) 22:54:29.72ID:BcFt2CuGD aは要するにポインタだからな
76デフォルトの名無しさん (ワッチョイ 7eda-PvPk)
2022/05/13(金) 22:58:14.08ID:JesbR9jP0 c以上ならポインた
77デフォルトの名無しさん (アウアウウー Sa1f-PvPk)
2022/05/13(金) 23:28:52.57ID:94QyLQ1Xa78デフォルトの名無しさん (ワッチョイ ffbb-bUW4)
2022/05/14(土) 01:49:07.38ID:5NJ35cqH0 セルの値を取得して書き換えて…ってやるより二次元配列で処理する方が体感3倍くらい速いから、高速化したいなら配列使えばいいよね
ただ他の人もわかるようにとかメンテナンス性考えると避けた方が無難だったり、ケースバイケース
ただ他の人もわかるようにとかメンテナンス性考えると避けた方が無難だったり、ケースバイケース
79デフォルトの名無しさん (ワッチョイ 7dda-o6RS)
2022/05/14(土) 04:08:54.94ID:wh2tsa6Q0 他人の使い勝手なんか微塵も考えていないヤツが大半だろ現場じゃあ
80デフォルトの名無しさん (ワッチョイ bfce-yvGd)
2022/05/14(土) 04:13:11.38ID:JIfRBOPe0 Variantはポインタじゃなくて共用体
そもそもVariantオブジェクトはVBA固有の機能じゃなくてWindowsに組み込まれてて、別の言語からも自由に使える
どういう場面で役に立つのかわからんけど
そもそもVariantオブジェクトはVBA固有の機能じゃなくてWindowsに組み込まれてて、別の言語からも自由に使える
どういう場面で役に立つのかわからんけど
81デフォルトの名無しさん (ラクッペペ MM17-3Kew)
2022/05/14(土) 04:32:51.17ID:bV9+cuz+M ポインタ的な使い方するならVariant型ではなくてObject型
Dim a As Object (総称オブジェクト型)
Rangeオブジェクトに特定するなら
Dim a As Range (固有オブジェクト型)
Dim a As Object (総称オブジェクト型)
Rangeオブジェクトに特定するなら
Dim a As Range (固有オブジェクト型)
82デフォルトの名無しさん (ワッチョイ 9b4f-aONe)
2022/05/14(土) 08:18:11.37ID:ddohEedh0 Variantってよく分からん型だよな
Objectもそうでないものも仕舞えるし
.Netで封印されたのも頷ける
Objectもそうでないものも仕舞えるし
.Netで封印されたのも頷ける
83デフォルトの名無しさん (ワッチョイ 637c-Lk/W)
2022/05/14(土) 10:07:30.24ID:BHEGSPOf0 >>78
配列の方が断然早いよね。
富○通がVBで作ったEXCEL名簿出力アプリが5時間以上かかってるのが、俺がEXCELVBAで組んだのは30分で終わる。
しかも富○通のはデータ1行ごとにコピペしてるので
動かしてる間コピーのバッファが奪われて他の作業が一切できない。
配列の方が断然早いよね。
富○通がVBで作ったEXCEL名簿出力アプリが5時間以上かかってるのが、俺がEXCELVBAで組んだのは30分で終わる。
しかも富○通のはデータ1行ごとにコピペしてるので
動かしてる間コピーのバッファが奪われて他の作業が一切できない。
84デフォルトの名無しさん (ワッチョイ d710-aONe)
2022/05/14(土) 10:48:24.07ID:0kHlnQQT0 オレオレ自慢
85デフォルトの名無しさん (スップ Sd03-lIli)
2022/05/14(土) 10:57:42.22ID:jjfnS8MSd VBのコードみてVBAにする際に少し手直しした程度なんだと思うが
どの程度のデータか不明だけど30分もかかるような処理も自分としてはNGだわ
まあどっちも夜流して朝みればいいなら5時間でも一緒程度
どの程度のデータか不明だけど30分もかかるような処理も自分としてはNGだわ
まあどっちも夜流して朝みればいいなら5時間でも一緒程度
86デフォルトの名無しさん (オッペケ Sr99-YYQQ)
2022/05/14(土) 11:08:32.24ID:XMrr4JDhr 何分とかかかる時点でRDBとか外出ししてやれないかとか考えちゃう
Excelには荷が重いんじゃないかとね
Excelには荷が重いんじゃないかとね
87デフォルトの名無しさん (アウアウウー Sa31-bUW4)
2022/05/14(土) 11:27:37.36ID:x+cFGSU+a どんだけ長い処理でも耐えられて2分までだわ
30分かかるとか論外
30分かかるとか論外
88デフォルトの名無しさん (スププ Sd2f-xGWD)
2022/05/14(土) 11:39:20.09ID:tj4PNqc2d そんなに処理に時間がかかるってことは多分生データが数Gクラスだろうからaccessやexcelでは非効率だろう
ここに>83の間抜けさがよく現れてる
ここに>83の間抜けさがよく現れてる
89デフォルトの名無しさん (ワッチョイ 7b42-Suzn)
2022/05/14(土) 11:43:13.01ID:5E8BmIH10 そんな大規模なデータを扱ったことないからわからないけど
30分もかかったら途中で無限ループに入ってんだろなと思って止めてしまうわ
30分もかかったら途中で無限ループに入ってんだろなと思って止めてしまうわ
90デフォルトの名無しさん (ワッチョイ 6768-mOD9)
2022/05/14(土) 11:59:12.73ID:VTp6T5x/0 vbaを30分も動かすってどんな処理だよ
あとあまり長い時間動かしっぱなしにすると大体フリーズしてるぞ
あとあまり長い時間動かしっぱなしにすると大体フリーズしてるぞ
91デフォルトの名無しさん (スップ Sd03-lIli)
2022/05/14(土) 12:14:29.94ID:jjfnS8MSd どんな処理でも構わないけどExcelのプロセスが起動してるときに新規のExcel起動>ファイルを開くで開けばいいけど
無意識のうちにダブルクリックなんかで開こうとしたらVBA実行中のプロセスで開かないとも限らないから
30分の拘束ってのは日中ならなし
無意識のうちにダブルクリックなんかで開こうとしたらVBA実行中のプロセスで開かないとも限らないから
30分の拘束ってのは日中ならなし
92デフォルトの名無しさん (ワッチョイ bfce-yvGd)
2022/05/14(土) 12:55:50.88ID:JIfRBOPe0 そんなに速くしたら、フリーズしてないか監視する仕事の人がクビになっちゃうだろ
ああいうのは、わざと1日かかるように作ってあるんだよ
ああいうのは、わざと1日かかるように作ってあるんだよ
93デフォルトの名無しさん (ワッチョイ 7dda-o6RS)
2022/05/14(土) 13:31:33.15ID:wh2tsa6Q0 なんでExcelエキスパート集団の富○通がそんなクソ遅いマクロ書くのか不思議だ。
94デフォルトの名無しさん (ワッチョイ 6768-mOD9)
2022/05/14(土) 15:15:38.33ID:VTp6T5x/0 >Excelエキスパート集団
それはない
それはない
95デフォルトの名無しさん (スップ Sdcf-lPuq)
2022/05/14(土) 16:41:13.43ID:9uXA4NxPd 富士通が直接作っているのでないだろうし、たった一つの例で全部がわかったつもりになる幼稚なアホ
96デフォルトの名無しさん (ワッチョイ f101-5bcZ)
2022/05/14(土) 18:27:44.98ID:msymY1pp0 あんまり処理に時間かかるようなやつならプログレスバーやらひとまず動いてることがわかるようなものを入れとくわ
97デフォルトの名無しさん (ワッチョイ 17ff-0svr)
2022/05/14(土) 18:32:44.86ID:qaSd7ep40 1.xlsx、2.xlsx、3.xlsx、・・・、1000.xlsxという連番のブックがあって
そのすべてにssssというシートがあって
そのすべてのD2(R2C4)セルにデータがあるとして
あるブックのA1~A1000に1~1000が入力してあって、
それぞれの隣(B1~B1000)に対応するブック(B500には500.xlsx)の
シートssssのD2セルの中身を持ってくるのってどうすればいいですか?
ExecuteExcel4Macroとか使ってそんなに難しくなくやれるかと思いきやまるでうまくいかない…
そのすべてにssssというシートがあって
そのすべてのD2(R2C4)セルにデータがあるとして
あるブックのA1~A1000に1~1000が入力してあって、
それぞれの隣(B1~B1000)に対応するブック(B500には500.xlsx)の
シートssssのD2セルの中身を持ってくるのってどうすればいいですか?
ExecuteExcel4Macroとか使ってそんなに難しくなくやれるかと思いきやまるでうまくいかない…
98デフォルトの名無しさん (エアペラ SD1d-I8Wv)
2022/05/14(土) 18:58:29.62ID:lDPvxjtFD >>94
方眼紙はじめとした使い方への皮肉だろ
方眼紙はじめとした使い方への皮肉だろ
99デフォルトの名無しさん (ワッチョイ 2d5f-yvGd)
2022/05/14(土) 19:14:09.21ID:yHnyJFGQ0 >>97
他に条件や例外がないなら自分で書いてる通り「そんなに難しくない」が、どこで詰まってるの?
他に条件や例外がないなら自分で書いてる通り「そんなに難しくない」が、どこで詰まってるの?
100デフォルトの名無しさん (ワッチョイ 6768-mOD9)
2022/05/14(土) 19:20:25.44ID:VTp6T5x/0 >>97
ExecuteExcel4Macroはデフォで無効にされた
なんか知らんが俺も動かせなかったからもうベタ書きで
https://forest.watch.impress.co.jp/docs/serial/yajiuma/1357642.html
Sub Sample1()
Set t = ThisWorkbook
For i = 1 To 3
Set databook = Workbooks.Open(Filename:="C:\Users\81909\Downloads\" & i & ".xlsx")
t.Sheets("ssss").Cells(i, 2) = databook.Sheets("ssss").Cells(2, 4)
databook.Close
Next
End Sub
>>98
それならok
ExecuteExcel4Macroはデフォで無効にされた
なんか知らんが俺も動かせなかったからもうベタ書きで
https://forest.watch.impress.co.jp/docs/serial/yajiuma/1357642.html
Sub Sample1()
Set t = ThisWorkbook
For i = 1 To 3
Set databook = Workbooks.Open(Filename:="C:\Users\81909\Downloads\" & i & ".xlsx")
t.Sheets("ssss").Cells(i, 2) = databook.Sheets("ssss").Cells(2, 4)
databook.Close
Next
End Sub
>>98
それならok
101デフォルトの名無しさん (ワッチョイ f101-5bcZ)
2022/05/14(土) 19:26:19.82ID:msymY1pp0 内容あまり理解出来てないのかもしれないけど
B500の行取得してワークブックオープンで引数ファイルパス500で開いてデータ抜きたいところ抜けば良いのではないでしょうか。
4使うあたり処理を重くしたくないのでワークブックを開きたくないようにも見えますが
B500の行取得してワークブックオープンで引数ファイルパス500で開いてデータ抜きたいところ抜けば良いのではないでしょうか。
4使うあたり処理を重くしたくないのでワークブックを開きたくないようにも見えますが
102デフォルトの名無しさん (スップ Sd03-lIli)
2022/05/14(土) 19:51:35.87ID:jjfnS8MSd こんな感じになる文字列を作ればいけないか?(フォルダ名とファイル名を変更していく)
MsgBox ExecuteExcel4Macro("'フォルダ名\[1000.xlsx]ssss'!R2C4")
MsgBox ExecuteExcel4Macro("'フォルダ名\[1000.xlsx]ssss'!R2C4")
103デフォルトの名無しさん (ワッチョイ 91da-Hs+l)
2022/05/15(日) 01:22:22.35ID:xmtudDvv0 MSHTML.HTMLDocumentのbody.outerHtmlに何か代入しようとすると、
あるPCでは問題なく出来るのに、
別のPCではアプリケーション定義のエラーがでる
何故?
ソースは同じなのに
あるPCでは問題なく出来るのに、
別のPCではアプリケーション定義のエラーがでる
何故?
ソースは同じなのに
104デフォルトの名無しさん (スフッ Sd2f-xGWD)
2022/05/15(日) 08:18:10.46ID:Jt2O43PNd 参照設定は?
105デフォルトの名無しさん (ワッチョイ 3d01-yvGd)
2022/05/15(日) 13:24:19.34ID:K6VbLnva0 >>68
即レスいただいてたのに遅くなりました。ありがとうございます。
常識なんですね。とてもためになりました。
少数が原因だろうと思いつつもローカルウィンドウの値は整数だし
Fixしても発生するので困ってました。ありがとうございます。
即レスいただいてたのに遅くなりました。ありがとうございます。
常識なんですね。とてもためになりました。
少数が原因だろうと思いつつもローカルウィンドウの値は整数だし
Fixしても発生するので困ってました。ありがとうございます。
106デフォルトの名無しさん (ワッチョイ 91da-Hs+l)
2022/05/15(日) 15:21:30.27ID:xmtudDvv0107デフォルトの名無しさん (ササクッテロ Spa5-nyNy)
2022/05/15(日) 17:45:40.00ID:SLK6Xy6bp >>106
参照不可はない?
参照不可はない?
108デフォルトの名無しさん (ササクッテロ Spa5-nyNy)
2022/05/15(日) 17:49:03.93ID:i2BwfRJap >>83
依頼元の情報提供不足。対象件数とか。
依頼元の情報提供不足。対象件数とか。
109デフォルトの名無しさん (ワッチョイ 2b7c-I8Wv)
2022/05/15(日) 20:29:54.61ID:EFSZcQ6p0 VBAで作ったブックを指定するにはどうやるのがいいんでしょうか
VBAで複数ブックを作るとBook1、Book2、…となりますが、
どうやってそれぞれのブックを指定してやればいいのかが分かりません
VBAで複数ブックを作るとBook1、Book2、…となりますが、
どうやってそれぞれのブックを指定してやればいいのかが分かりません
110デフォルトの名無しさん (ワッチョイ 1f17-5bcZ)
2022/05/15(日) 20:48:22.92ID:xHyGsu5B0 ブックの作成の際にワークブック変数にセットする
set=workbooks.add
set=workbooks.add
111デフォルトの名無しさん (ワッチョイ f101-5bcZ)
2022/05/15(日) 21:20:44.06ID:i/ziY72x0 変数に格納するってのは名前をつけてあげるみたいな意味合いがある気がする
変数作ってセットすれば呼び出しやすい
変数作ってセットすれば呼び出しやすい
112デフォルトの名無しさん (ワッチョイ ebda-yvGd)
2022/05/15(日) 22:58:08.71ID:e0cA7YQF0 Set wb = ThisWorkbook
Set ws = wb.Worksheets("sheet名")
とやっといて、
カーソル移動したいだけなのに、
ws.Range("B3").Select
とやったら、
「RangeクラスのSelectメソッドが失敗しました」
と出て動かなくなって・・・???
原因はRange.Selectやる前に
当該sheetをActivateしていないことだと
今日、ようやく知ったアタシが通り過ぎますよ・・・
Set ws = wb.Worksheets("sheet名")
とやっといて、
カーソル移動したいだけなのに、
ws.Range("B3").Select
とやったら、
「RangeクラスのSelectメソッドが失敗しました」
と出て動かなくなって・・・???
原因はRange.Selectやる前に
当該sheetをActivateしていないことだと
今日、ようやく知ったアタシが通り過ぎますよ・・・
11397 (ワッチョイ 17ff-0svr)
2022/05/15(日) 23:36:58.31ID:VONG1GsX0114デフォルトの名無しさん (ワッチョイ ffbb-bUW4)
2022/05/15(日) 23:39:04.92ID:km049kvp0 >>112
VBAやっててSelect使うことなんてほぼ無いんだからその仕様を知らないことを気にしなくていい
VBAやっててSelect使うことなんてほぼ無いんだからその仕様を知らないことを気にしなくていい
115デフォルトの名無しさん (ワッチョイ cba5-fImR)
2022/05/15(日) 23:53:26.84ID:sFHTlWBy0116デフォルトの名無しさん (ワッチョイ 3fac-YYQQ)
2022/05/16(月) 00:14:35.90ID:D08mu/WY0 セルとかSelectするのは最後くらいだもんなあ
117デフォルトの名無しさん (ワッチョイ 91da-Hs+l)
2022/05/16(月) 01:37:32.91ID:PWfPx8Kl0 >>107
無いんだよね
代入が出来ないだけで表示は出来るんだけど、
""の空文字すら入れられないのは何なのか…
型が一致しないエラーでもないし
仕方がないからDocument.writeで代用したけど
無いんだよね
代入が出来ないだけで表示は出来るんだけど、
""の空文字すら入れられないのは何なのか…
型が一致しないエラーでもないし
仕方がないからDocument.writeで代用したけど
118デフォルトの名無しさん (ワッチョイ ebda-Lh2i)
2022/05/16(月) 07:25:27.55ID:x3MSJzWb0 >>114
気象庁の過去気象データ1時間値を
DLしようとしたら、
1日ごとにURLが違うので、
1日分を読んではコピペさせてるんだけど・・・
単体項目なら1年分一度に落とせるけど、
1観測地点の全項目は1日ごとの模様
気象庁の過去気象データ1時間値を
DLしようとしたら、
1日ごとにURLが違うので、
1日分を読んではコピペさせてるんだけど・・・
単体項目なら1年分一度に落とせるけど、
1観測地点の全項目は1日ごとの模様
119デフォルトの名無しさん (ワッチョイ bfce-yvGd)
2022/05/16(月) 09:05:21.75ID:gw7DnXAE0120デフォルトの名無しさん (ワッチョイ 1949-yvGd)
2022/05/16(月) 10:02:47.99ID:a802uHDS0 ワイなら大まかに
「データをURLでフェッチする」機能
「データをシートに表現する」機能
とかに分けてそれぞれの中でループする
どんなデータ取るんかとか知らんけど
過去の気象データなら変化ないんやろから(少しずつしか追加されないし)
あらかたDLしちゃって毎日追加する運用でよくね
Accessで動くか知らんがワイなら楽だし(R)DBにして、
Excelは表現に特化させる
まあDBとして考えるなら119の言うように特定のデータをカラムとして取り込むほうがいいけどね
「データをURLでフェッチする」機能
「データをシートに表現する」機能
とかに分けてそれぞれの中でループする
どんなデータ取るんかとか知らんけど
過去の気象データなら変化ないんやろから(少しずつしか追加されないし)
あらかたDLしちゃって毎日追加する運用でよくね
Accessで動くか知らんがワイなら楽だし(R)DBにして、
Excelは表現に特化させる
まあDBとして考えるなら119の言うように特定のデータをカラムとして取り込むほうがいいけどね
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★4 [七波羅探題★]
- 中国軍機レーダー照射、トランプ氏沈黙突く 試される日本外交 [蚤の市★]
- 【広島】「万引きした人を追跡」コンビニ店員の男性(46)を果物ナイフで刺したか 中国籍の少年(17)を殺人未遂容疑で現行犯逮捕 [ぐれ★]
- 【地震】青森県で震度6強 長周期地震動も 津波注意報すべて解除 ★7 [ぐれ★] [ぐれ★]
- 【サッカー】58歳カズ「オファーが来ている」 J3福島と近日中にも交渉 早ければ年内にも決断 [征夷大将軍★]
- 【速報】気象庁は津波注意報すべて解除 [蚤の市★]
- 【実況】博衣こよりのえちえち朝こよ🧪
- (´・ω・`)おはよ
- さかまた「過呼吸になった」かなた「耳聞こえない」ござる「声出ない」まつり「ご飯食べれない」
- 【画像】カリカリ女、脱いだらすごい😨 [632966346]
- くそしてかがやけ
- 🪬本日のコンマ占い🧿
