!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
レス数が950を超えています。1000を超えると書き込みができなくなります。
1デフォルトの名無しさん (ワッチョイ 5f2e-juJ7)
2022/10/30(日) 13:43:16.31ID:6yf2E1Gz0866デフォルトの名無しさん (オッペケ Src7-a63L)
2023/01/23(月) 06:47:14.18ID:7g54Dlndr >>872
答えな
答えな
867デフォルトの名無しさん (オッペケ Src7-a63L)
2023/01/23(月) 07:03:42.58ID:7g54Dlndr >>865
変数を定義して範囲の右下のキーワードを拾って
ActiveSheet.PageSetup.PrintArea =
のところにその定義した変数を入れてやるという理屈で合ってますよね?
後はフサフサでも分かるEXCEL VBAの本が到着してから勉強します
変数を定義して範囲の右下のキーワードを拾って
ActiveSheet.PageSetup.PrintArea =
のところにその定義した変数を入れてやるという理屈で合ってますよね?
後はフサフサでも分かるEXCEL VBAの本が到着してから勉強します
868デフォルトの名無しさん (JP 0Hc7-j5s0)
2023/01/23(月) 07:11:24.85ID:iLyXDG2rH よかったです、がんばってください!
869デフォルトの名無しさん (ワッチョイ 0301-WyxW)
2023/01/23(月) 08:50:43.95ID:rT2ytU3d0 >>858
> VBAのSETて参照するだけで、その参照したものを上位の配列にaddしても、
> 参照先情報みたいなものがaddされるだけで、別メモリーの情報がaddされるわけじゃない。
だから新規に作ってコピーしなよって書いたのに...
コードまで書いたのに無視するんならもうさじ投げるわ
> VBAのSETて参照するだけで、その参照したものを上位の配列にaddしても、
> 参照先情報みたいなものがaddされるだけで、別メモリーの情報がaddされるわけじゃない。
だから新規に作ってコピーしなよって書いたのに...
コードまで書いたのに無視するんならもうさじ投げるわ
870デフォルトの名無しさん (ワッチョイ bf3d-Sc6R)
2023/01/23(月) 09:10:22.34ID:+DM8uE5N0 >>869
新規に作るていっても、複雑な連想配列の塊をどうやって作る?
サンプルはたかだなNameとserifしかキーがないけど、
キーがいっぱいある構造のデーターをコード内でコピーするロジックを書くのは無理だと考える。
しかもその構造が動的だったらお手上げ。
新規に作るていっても、複雑な連想配列の塊をどうやって作る?
サンプルはたかだなNameとserifしかキーがないけど、
キーがいっぱいある構造のデーターをコード内でコピーするロジックを書くのは無理だと考える。
しかもその構造が動的だったらお手上げ。
871デフォルトの名無しさん (スッププ Sd1f-88l+)
2023/01/23(月) 09:18:38.98ID:0EjNvA6Wd 質問スレに回答してくる人は善意でやってるだけで最終的に自分で解決できないならあきらめろって話
872デフォルトの名無しさん (アウアウウー Saa7-WyxW)
2023/01/23(月) 09:32:51.14ID:QZVEgBP9a873デフォルトの名無しさん (スップ Sd1f-IfUZ)
2023/01/23(月) 09:42:01.99ID:q/YAUd9Kd マクロでやりたいなら行数が最大になるパターンで書式作っておいて、そこにデータ入力、不要な行の削除でそのまま印刷すればよくね?
874デフォルトの名無しさん (ワッチョイ bf3d-Sc6R)
2023/01/23(月) 09:55:52.06ID:+DM8uE5N0875デフォルトの名無しさん (ワッチョイ cfda-88l+)
2023/01/23(月) 13:24:02.41ID:2y89VdvQ0 またVBAが壊れた。
プロシージャの中でオブジェクト変数に割り当てる
ワークシート名やクエリー・テーブル名を
日本語にしているのはマズい?
プロシージャの中でオブジェクト変数に割り当てる
ワークシート名やクエリー・テーブル名を
日本語にしているのはマズい?
876デフォルトの名無しさん (ワッチョイ 5349-j0by)
2023/01/23(月) 15:15:51.75ID:cuqAJLzI0 インターネットが壊れた
877デフォルトの名無しさん (ワッチョイ 7ff0-j5s0)
2023/01/23(月) 17:40:15.92ID:zqGzpVPE0 vbaが壊れるという表現が分からない
プログラムは組んだようにしか動かない
プログラムは組んだようにしか動かない
878デフォルトの名無しさん (ワッチョイ cfda-88l+)
2023/01/23(月) 18:35:46.07ID:2y89VdvQ0 先週までは問題なく動いていたブックを開くと、
すぐExcelが落ちて回復が入ってしまい、
回復ブックを開くと、プロシージャがモジュールごと丸々なくなっていた。
ワークシートのクエリーやテーブル、計算式やグラフは壊れていなさそうで、
新たにモジュールを作り直して
バックアップを取っていたプロシージャの記述をそのまま貼り付けたら、
一応、VBAも動くようになった。
過去には新たなモジュールすら作れなくなったことも。
すぐExcelが落ちて回復が入ってしまい、
回復ブックを開くと、プロシージャがモジュールごと丸々なくなっていた。
ワークシートのクエリーやテーブル、計算式やグラフは壊れていなさそうで、
新たにモジュールを作り直して
バックアップを取っていたプロシージャの記述をそのまま貼り付けたら、
一応、VBAも動くようになった。
過去には新たなモジュールすら作れなくなったことも。
879デフォルトの名無しさん (ワッチョイ cfda-88l+)
2023/01/23(月) 19:12:29.48ID:g2a0jdgy0 自力で解決した自慢ですね、わかります
880デフォルトの名無しさん (ワッチョイ 53da-Jpma)
2023/01/23(月) 19:45:05.26ID:GmkrhCzJ0 過去に学んでこの際だからぜんぶ変えてしまおう またいつアプデ地獄に巻き込まれるか知れたもんじゃ無いし
https://qiita.com/Q11Q/items/7a9d4c89726cfaa7abd6
https://qiita.com/Q11Q/items/7a9d4c89726cfaa7abd6
881デフォルトの名無しさん (JP 0Hc7-j5s0)
2023/01/23(月) 20:16:53.47ID:iLyXDG2rH 「VBAが消えてしまった!マクロが壊れて動かない!」
ってな感じで検索してみたら?
ってな感じで検索してみたら?
882デフォルトの名無しさん (ワッチョイ 332f-DmZS)
2023/01/23(月) 20:31:12.87ID:XEd9VR/30 ACCESSで、NLSの問題でカナ含むVBAモジュールが開けなくなるってのはあったな
883デフォルトの名無しさん (ワッチョイ cfda-88l+)
2023/01/23(月) 21:06:30.67ID:2y89VdvQ0884デフォルトの名無しさん (ワッチョイ 6fda-A+LD)
2023/01/23(月) 21:23:58.29ID:7qHnsy280 確認したけど2212が最新で更新できなかった
885デフォルトの名無しさん (JP 0Hff-88l+)
2023/01/23(月) 21:28:06.31ID:c8LJJic2H NAME?
886デフォルトの名無しさん (ワッチョイ cfda-88l+)
2023/01/23(月) 21:37:36.60ID:2y89VdvQ0887デフォルトの名無しさん (JP 0Hff-88l+)
2023/01/23(月) 21:54:37.35ID:c8LJJic2H888デフォルトの名無しさん (ワッチョイ cfda-88l+)
2023/01/23(月) 21:59:43.45ID:2y89VdvQ0889デフォルトの名無しさん (ワッチョイ d3ce-Jpma)
2023/01/24(火) 03:50:07.79ID:ID+MP23U0 ドイツのプログラマーが、Selenium、WebDriverを使わずにEdgeを直接制御するクラスを作ってるのを見つけた
試したらとりあえず動いたんで報告
https://www.codeproject.com/Tips/5307593/Automate-Chrome-Edge-using-VBA
動作テスト中にはまった点を書いておくと、裏でEdgeのアップデートチェックが走ってるとエラーが出て止まる
これだけ殺せば動く
taskkill /f /im msedge.exe
taskkill /f /im MicrosoftEdgeUpdate.exe
あと、Edgeの起動オプションを
--remote-debugging-pipe --disable-automation
に変えるとコマンドラインウィンドウが出なくなる
試したらとりあえず動いたんで報告
https://www.codeproject.com/Tips/5307593/Automate-Chrome-Edge-using-VBA
動作テスト中にはまった点を書いておくと、裏でEdgeのアップデートチェックが走ってるとエラーが出て止まる
これだけ殺せば動く
taskkill /f /im msedge.exe
taskkill /f /im MicrosoftEdgeUpdate.exe
あと、Edgeの起動オプションを
--remote-debugging-pipe --disable-automation
に変えるとコマンドラインウィンドウが出なくなる
890デフォルトの名無しさん (ワッチョイ cf01-hCjO)
2023/01/24(火) 14:18:41.94ID:kQQ7KETY0 Dim a As Long
Dim b As Short
Dim b As Short
891デフォルトの名無しさん (ワッチョイ cf01-hCjO)
2023/01/24(火) 14:22:05.82ID:kQQ7KETY0 Dim a As Single
Dim b As Double
Dim c As Triple
Dim b As Double
Dim c As Triple
892デフォルトの名無しさん (オッペケ Src7-a63L)
2023/01/24(火) 20:20:19.23ID:Fm53fhAfr フサVBAの本が届いた~
分からないとこはよろしく
分からないとこはよろしく
893デフォルトの名無しさん (ワッチョイ ff7c-RpYB)
2023/01/25(水) 00:33:41.40ID:E3f+ZKf20 >>889
どうしてわざわざEdgeをチョイスするのかと
どうしてわざわざEdgeをチョイスするのかと
894デフォルトの名無しさん (ワッチョイ e379-TshA)
2023/01/25(水) 01:52:23.37ID:WwTOH1I60 Edgeと言いながらプロトコル的にchronium系共通だし
OSに元から入ってるEdgeならIE難民にはちょうどいいんじゃね
OSに元から入ってるEdgeならIE難民にはちょうどいいんじゃね
895デフォルトの名無しさん (ワッチョイ 53da-Jpma)
2023/01/25(水) 11:18:39.60ID:PxGM72CY0 他社との業務連携用途とかだと他の選択肢が無かったりする
896デフォルトの名無しさん (ワッチョイ cfda-88l+)
2023/01/25(水) 11:41:19.68ID:qyEQLwkW0 自分にできないことを引き受けるから失敗する
897デフォルトの名無しさん (ワッチョイ 7ff0-j5s0)
2023/01/25(水) 14:14:51.65ID:uj/UrXzd0 できるだろうって思ってガンガン仕様変更されても
898デフォルトの名無しさん (オッペケ Src7-zVY0)
2023/01/26(木) 07:02:58.95ID:QQqpl7Qdr 質問です
VBAを使ってこのスレの人にアンケートを取りたい
皆さんは文系ですか?理系ですか?
もともとプログラミング出来る人ですか?
それとも経理とか必要に迫られて覚えた方ですか?
VBAを使ってこのスレの人にアンケートを取りたい
皆さんは文系ですか?理系ですか?
もともとプログラミング出来る人ですか?
それとも経理とか必要に迫られて覚えた方ですか?
899デフォルトの名無しさん (ワッチョイ 0301-WyxW)
2023/01/26(木) 07:44:32.02ID:im4j/4Ys0 >>898
マ板でやれ
マ板でやれ
900デフォルトの名無しさん (オッペケ Src7-zVY0)
2023/01/26(木) 08:08:19.42ID:QQqpl7Qdr マ板って何?
包丁切れますか?
包丁切れますか?
901デフォルトの名無しさん (JP 0Hff-88l+)
2023/01/26(木) 08:12:22.27ID:jr7Apji9H 無意味なアンケート
902デフォルトの名無しさん (JP 0Hff-88l+)
2023/01/26(木) 08:14:59.84ID:jr7Apji9H 文字列の演算をエラーにする方法は無いでしょうか
Sub foo()
Str a
Str b
Str c
a = 1
b = 2
c = a + b
Debug.Print c
End Sub
Sub foo()
Str a
Str b
Str c
a = 1
b = 2
c = a + b
Debug.Print c
End Sub
903デフォルトの名無しさん (ワッチョイ a3e5-ZVkQ)
2023/01/26(木) 08:40:12.57ID:InTdWzkF0 c = a - b
904デフォルトの名無しさん (JP 0Hff-88l+)
2023/01/26(木) 08:47:05.40ID:jr7Apji9H905デフォルトの名無しさん (スプッッ Sd47-aTb4)
2023/01/26(木) 09:03:16.60ID:N0DN9EFmd 皆さんはお仕事何されてますか
事務をやって三年、仕事を楽にするために始めたExcelVBAは人並みに身についた気がしますが
ただの事務では給与が足りずプログラマに転向するには経験が浅いのです
事務をやって三年、仕事を楽にするために始めたExcelVBAは人並みに身についた気がしますが
ただの事務では給与が足りずプログラマに転向するには経験が浅いのです
906デフォルトの名無しさん (ワッチョイ ff02-qYbV)
2023/01/26(木) 09:11:16.84ID:NYppQtUx0 エクセルのvbaエディタ?がすごくつかいずらくて、
vsCodeでvbaが記述できるxvbaというツールを利用しようと試みています。
ですが、
エクセルで書かれたvbaの日本語文字が、vsCodeで読み込むと文字化けしてしまいます。
おそらく、エクセルの方のエディタがUTF-8ではないのかと思いますが。
このあたり、経験されているかた。どのように対処されていますでしょうか?
どうぞアドバイスください。
vsCodeでvbaが記述できるxvbaというツールを利用しようと試みています。
ですが、
エクセルで書かれたvbaの日本語文字が、vsCodeで読み込むと文字化けしてしまいます。
おそらく、エクセルの方のエディタがUTF-8ではないのかと思いますが。
このあたり、経験されているかた。どのように対処されていますでしょうか?
どうぞアドバイスください。
907デフォルトの名無しさん (ラクッペペ MM7f-qqxO)
2023/01/26(木) 09:44:15.86ID:eGur5fW5M >>906
よく分からんけど逆にVSCでCP932使えば良いのでは?
よく分からんけど逆にVSCでCP932使えば良いのでは?
908デフォルトの名無しさん (スップ Sd1f-88l+)
2023/01/26(木) 10:08:42.84ID:UvNszdC2d909デフォルトの名無しさん (ワッチョイ 0301-WyxW)
2023/01/26(木) 10:40:51.75ID:im4j/4Ys0 > Str a
> Str b
> Str c
なんていう謎の言語はスレ違いかと
> Str b
> Str c
なんていう謎の言語はスレ違いかと
910デフォルトの名無しさん (スップ Sd1f-88l+)
2023/01/26(木) 11:00:07.24ID:UvNszdC2d >>905
スレ違いです
スレ違いです
911デフォルトの名無しさん (ワッチョイ cfda-88l+)
2023/01/26(木) 11:10:42.36ID:JQ22Y2sI0 >>905
転職なら早い方がいい、年齢が若ければ新しい職場にもすぐ慣れるだろうから
転職なら早い方がいい、年齢が若ければ新しい職場にもすぐ慣れるだろうから
912デフォルトの名無しさん (ブーイモ MM7f-PvGG)
2023/01/26(木) 12:32:00.38ID:Y5eC8vQ8M >>902
エラーにするってのがよくわからんが
個人的にはc=a+b以降をしたのようにする。
If vartype(a) = vbstring or vartype(b) = vbstring Then
Debug.print "エラー"
Else
c= a + b
Debug.print c
End If
End Sub
>>908
a=1 と直接書いてるけど本当は
a=どっかのセルの値にしたいんじゃね?
で、そのセルには数値以外が入ってる可能性があるから
文字列ならエラーにしたいんじゃないかと。
>>909
文字列に変換するstr関数を使いたかったんじゃね?
書き方間違えてるから謎の言語になってるけど。
エラーにするってのがよくわからんが
個人的にはc=a+b以降をしたのようにする。
If vartype(a) = vbstring or vartype(b) = vbstring Then
Debug.print "エラー"
Else
c= a + b
Debug.print c
End If
End Sub
>>908
a=1 と直接書いてるけど本当は
a=どっかのセルの値にしたいんじゃね?
で、そのセルには数値以外が入ってる可能性があるから
文字列ならエラーにしたいんじゃないかと。
>>909
文字列に変換するstr関数を使いたかったんじゃね?
書き方間違えてるから謎の言語になってるけど。
913デフォルトの名無しさん (ワッチョイ ff02-qYbV)
2023/01/26(木) 12:41:55.63ID:NYppQtUx0 Transposeで作る配列の
一番最初の要素の添字は0じゃなくて、1であってます?
一番最初の要素の添字は0じゃなくて、1であってます?
914デフォルトの名無しさん (ワッチョイ d3ce-Jpma)
2023/01/26(木) 12:53:54.77ID:XU6i0xq00 >>902
(1)たとえセルの書式が文字列でも
(2)数字っぽい内容だと
(3)勝手に数値型に変換されてしまう
https://i.imgur.com/0xrxf44.png
何がやりたいのか、ぼかさずに具体的に説明してくれないと無理
(1)たとえセルの書式が文字列でも
(2)数字っぽい内容だと
(3)勝手に数値型に変換されてしまう
https://i.imgur.com/0xrxf44.png
何がやりたいのか、ぼかさずに具体的に説明してくれないと無理
915デフォルトの名無しさん (JP 0Hff-88l+)
2023/01/26(木) 12:55:07.08ID:jr7Apji9H916デフォルトの名無しさん (オッペケ Src7-CBlj)
2023/01/26(木) 13:02:48.18ID:bIyafktir >>915
それなら素直にlongで宣言するべきでしょ
変数名間違えた時の保険って、紛らわし変数名にするなって話だし
変数名間違えたときのための保険って言い出したら何も出来ないじゃん
じゃあその「変数名間違ってたときの確認のためのコードの」変数名が間違ってたらどうするの?
その確認のための変数名確認のためのコードをつけるのか?
それが間違ってたら?
確認のための変数名確認のための変数名確認のためのコードをやるの?
って話になる
それなら素直にlongで宣言するべきでしょ
変数名間違えた時の保険って、紛らわし変数名にするなって話だし
変数名間違えたときのための保険って言い出したら何も出来ないじゃん
じゃあその「変数名間違ってたときの確認のためのコードの」変数名が間違ってたらどうするの?
その確認のための変数名確認のためのコードをつけるのか?
それが間違ってたら?
確認のための変数名確認のための変数名確認のためのコードをやるの?
って話になる
917デフォルトの名無しさん (JP 0Hff-88l+)
2023/01/26(木) 13:11:07.62ID:jr7Apji9H >>916
逆で、文字列を数値として使ってしまった場合に検出したい
単にタイポ時の保険としてエラーが起こってほしいってだけだよ
vbaに無いなら仕方ない、そういう言語なんだなってだけで
別にそこには期待しないよ
逆で、文字列を数値として使ってしまった場合に検出したい
単にタイポ時の保険としてエラーが起こってほしいってだけだよ
vbaに無いなら仕方ない、そういう言語なんだなってだけで
別にそこには期待しないよ
918デフォルトの名無しさん (スップ Sd1f-88l+)
2023/01/26(木) 13:21:15.99ID:UvNszdC2d 少し上にいた大量にレスしてた奴みたいなおかしな質問者もいるし
適当に質問しても回答者が頑張ってくれるだろみたいな考えの質問者が多すぎなんだよ
適当に質問しても回答者が頑張ってくれるだろみたいな考えの質問者が多すぎなんだよ
919デフォルトの名無しさん (ワッチョイ d3ce-Jpma)
2023/01/26(木) 13:31:14.65ID:XU6i0xq00920913 (ワッチョイ ff02-qYbV)
2023/01/26(木) 13:32:06.85ID:NYppQtUx0921デフォルトの名無しさん (オッペケ Src7-CBlj)
2023/01/26(木) 13:35:53.75ID:bIyafktir >>917
あのさぁ、自分の説明が下手くそなくせにできないのは他人のせい、言語のせいにするのはよくないぞ
単にタイプミスって言っても自分がコード書くときにミスしないようにしたいのか、使う際にinputBox等で入力させるときにミスをなくしたいのかで全然違うだろ
エスパーじゃないんだから質問するならもっと具体的にしろよ
あのさぁ、自分の説明が下手くそなくせにできないのは他人のせい、言語のせいにするのはよくないぞ
単にタイプミスって言っても自分がコード書くときにミスしないようにしたいのか、使う際にinputBox等で入力させるときにミスをなくしたいのかで全然違うだろ
エスパーじゃないんだから質問するならもっと具体的にしろよ
922デフォルトの名無しさん (ワッチョイ d3ce-Jpma)
2023/01/26(木) 13:39:36.95ID:XU6i0xq00 >>920
ワークシートが1行目スタートだから
ワークシートが1行目スタートだから
923デフォルトの名無しさん (JP 0Hff-88l+)
2023/01/26(木) 14:28:02.25ID:jr7Apji9H >>921
いやinputboxなら全部文字列だろ
いやinputboxなら全部文字列だろ
924デフォルトの名無しさん (スップ Sd1f-88l+)
2023/01/26(木) 14:50:16.50ID:UvNszdC2d ExcelVBAは型に対する考慮が緩いから正直期待にそえる回答はないと思うよ
例えば変数名の先頭に型を付与するようなルール決めてもタイプミスって言葉で許されるなら破綻するだけだしね
例えば変数名の先頭に型を付与するようなルール決めてもタイプミスって言葉で許されるなら破綻するだけだしね
925デフォルトの名無しさん (オッペケ Src7-CBlj)
2023/01/26(木) 14:52:16.71ID:bIyafktir >>923
だから、最後までちゃんとかけや
それはinputBoxを格納する変数の話だろ
そんな話はしてないわ
色々な具体例があって様々な解決策があるのに、なんにも具体的な話を出さずに抽象的に話しして、一部に対してだけ反論してお前は馬鹿か?
だから、最後までちゃんとかけや
それはinputBoxを格納する変数の話だろ
そんな話はしてないわ
色々な具体例があって様々な解決策があるのに、なんにも具体的な話を出さずに抽象的に話しして、一部に対してだけ反論してお前は馬鹿か?
926デフォルトの名無しさん (JP 0Hff-88l+)
2023/01/26(木) 14:56:29.20ID:jr7Apji9H927デフォルトの名無しさん (オッペケ Src7-CBlj)
2023/01/26(木) 14:58:44.32ID:bIyafktir つーか
「単純にコードのミスを検出したいだけなんです
変数名を間違えた場合の保険程度のつもりなんです」
本当にこれだけだったら先頭にOption Explicitつけて似たような変数宣言するな、で終わる話だよな
さすがにOption Explicitをつけてない人はいないだろうからそんな超初歩的な事はありえないと思ってるけど
「単純にコードのミスを検出したいだけなんです
変数名を間違えた場合の保険程度のつもりなんです」
本当にこれだけだったら先頭にOption Explicitつけて似たような変数宣言するな、で終わる話だよな
さすがにOption Explicitをつけてない人はいないだろうからそんな超初歩的な事はありえないと思ってるけど
928デフォルトの名無しさん (オッペケ Src7-CBlj)
2023/01/26(木) 15:12:07.01ID:bIyafktir929デフォルトの名無しさん (スッップ Sd1f-RQPf)
2023/01/26(木) 15:26:02.63ID:PKxWUOv2d 例の零細企業の馬鹿社員だろ
930デフォルトの名無しさん (JP 0Hff-88l+)
2023/01/26(木) 15:51:08.82ID:jr7Apji9H >>928
結局回答できない無能で草
結局回答できない無能で草
931デフォルトの名無しさん (スッップ Sd1f-RQPf)
2023/01/26(木) 15:55:50.96ID:41WP6aJtd やっぱり
こういうのを相手にするのがそもそもの間違い
こういうのを相手にするのがそもそもの間違い
932デフォルトの名無しさん (オッペケ Src7-zVY0)
2023/01/26(木) 16:26:35.24ID:QQqpl7Qdr >>929
ん?呼んだ?
ん?呼んだ?
933デフォルトの名無しさん (スプッッ Sd47-aTb4)
2023/01/26(木) 16:54:33.47ID:N0DN9EFmd IF Not Isnumeric( a + b ) then c = a + b
とか
c = a & b
とかの雑魚コードでも教えておけばよかったのに
とか
c = a & b
とかの雑魚コードでも教えておけばよかったのに
934デフォルトの名無しさん (ラクッペペ MM7f-ZVkQ)
2023/01/26(木) 17:03:23.50ID:UDgAljjqM a = 1 の暗黙の型変換でエラーにしたいならそう言えよ
935デフォルトの名無しさん (ワッチョイ cfda-88l+)
2023/01/26(木) 18:24:03.88ID:JQ22Y2sI0 >>928
なれると初心者の質問だって見抜けるようになるよ
なれると初心者の質問だって見抜けるようになるよ
936デフォルトの名無しさん (JP 0Hff-88l+)
2023/01/26(木) 18:44:31.80ID:jr7Apji9H 荒れすぎだろ
どうなってんだよ
どうなってんだよ
937デフォルトの名無しさん (スップ Sd1f-88l+)
2023/01/26(木) 19:02:58.68ID:UvNszdC2d 質問が雑だと回答する側は色々考えるからこういう感じになるんだよ
だから質問する側もちゃんと回答しやすいようにすればいいだけ
だから質問する側もちゃんと回答しやすいようにすればいいだけ
938デフォルトの名無しさん (ワッチョイ e379-TshA)
2023/01/26(木) 19:07:48.41ID:lq03KzKz0 そんなの期待するだけ無駄
そっとスレを閉じればいいのよ
そっとスレを閉じればいいのよ
939デフォルトの名無しさん (ワンミングク MM9f-gSeq)
2023/01/26(木) 19:12:37.90ID:CIVBTG9eM 零細企業のアホみたいな奴に答えてやろうなんて思うから荒れる
助けてで始まる質問する奴や、頭が悪いのに自分はできるみたいに思っておかしな質問をする奴は無視するのが一番
助けてで始まる質問する奴や、頭が悪いのに自分はできるみたいに思っておかしな質問をする奴は無視するのが一番
940デフォルトの名無しさん (オッペケ Src7-zVY0)
2023/01/26(木) 19:15:21.07ID:LFv4Wa39r てゆーかそんな事を言うやつがわざわざこんなとこ見るなよ
教えてやってるみたいな立ち位置でさw
教えてやってるみたいな立ち位置でさw
941デフォルトの名無しさん (JP 0Hc7-j5s0)
2023/01/26(木) 19:17:05.41ID:fSHWBRl+H 変数が文字列ならエラーにすれば?
942デフォルトの名無しさん (ワッチョイ 0301-WyxW)
2023/01/26(木) 19:26:25.23ID:im4j/4Ys0 そもそも
> Str a
> Str b
> Str c
の時点で実際に動かしてないんだから相手する価値なし
> Str a
> Str b
> Str c
の時点で実際に動かしてないんだから相手する価値なし
943デフォルトの名無しさん (スッププ Sd1f-88l+)
2023/01/26(木) 20:00:51.10ID:BIrRkdsHd944デフォルトの名無しさん (ワッチョイ 6f19-1gWY)
2023/01/26(木) 20:10:49.10ID:omfXV+oL0 キチンとString型を宣言しているなら確か
+は文字列連結の意味になるんじゃなかったっけ?
であれば前のレスで言ってた人がいたけど
- 0とか*0とかすればエラーになるんじゃないかな?
逆にSQLとかで文字列を数値で扱いたい場合は
*0とか-0とかにすると暗黙の変換で数値にしてくれる。
VBAでは型宣言は絶対だけど、
VBSみたいにスカラー変数を使う場合は
VBAみたいな型指定の型宣言が出来ないんで少し戸惑うかもね。
でもここはVBAのスレなので、
基本的に型宣言は絶対だと思っていいと思うよ。
+は文字列連結の意味になるんじゃなかったっけ?
であれば前のレスで言ってた人がいたけど
- 0とか*0とかすればエラーになるんじゃないかな?
逆にSQLとかで文字列を数値で扱いたい場合は
*0とか-0とかにすると暗黙の変換で数値にしてくれる。
VBAでは型宣言は絶対だけど、
VBSみたいにスカラー変数を使う場合は
VBAみたいな型指定の型宣言が出来ないんで少し戸惑うかもね。
でもここはVBAのスレなので、
基本的に型宣言は絶対だと思っていいと思うよ。
945デフォルトの名無しさん (JP 0Hff-88l+)
2023/01/27(金) 00:45:46.26ID:PwZKt+DmH946デフォルトの名無しさん (ワッチョイ d3ce-Jpma)
2023/01/27(金) 00:52:57.14ID:Gy/KHy720947デフォルトの名無しさん (JP 0Hff-88l+)
2023/01/27(金) 01:00:12.13ID:PwZKt+DmH948デフォルトの名無しさん (ワッチョイ 332f-DmZS)
2023/01/27(金) 02:03:03.20ID:sVJGpHK80949デフォルトの名無しさん (ワッチョイ 6f8c-jJmO)
2023/01/27(金) 03:26:55.09ID:wPosq0f50950デフォルトの名無しさん (ワッチョイ 6fda-A+LD)
2023/01/27(金) 04:22:04.52ID:WUhobyCY0 演算子一覧表
https://support.microsoft.com/ja-jp/office/e1bc04d5-8b76-429f-a252-e9223117d6bd
連結演算子
& 2 つの文字列を組み合わせて、1 つの文字列を作成します。
+ 2 つの文字列を組み合わせて、1 つの文字列を作成し、Null 値を伝達します (一方の値が Null の場合、式全体が Null と評価されます)。
https://support.microsoft.com/ja-jp/office/e1bc04d5-8b76-429f-a252-e9223117d6bd
連結演算子
& 2 つの文字列を組み合わせて、1 つの文字列を作成します。
+ 2 つの文字列を組み合わせて、1 つの文字列を作成し、Null 値を伝達します (一方の値が Null の場合、式全体が Null と評価されます)。
951デフォルトの名無しさん (ワッチョイ ff02-qYbV)
2023/01/27(金) 09:27:20.18ID:JeWwXD830 VBAはあまり書かなくて理解足らないのは承知しているが、
配列に0から200の値を書き込むサンプル
これは、型があわないとアラートが返ってきます。
ダメな理由を教えてください。
Sub test()
Dim arrs As Variant
Dim i As Long
For i = 0 To 200
arrs(i) = i
Next i
End Sub
配列に0から200の値を書き込むサンプル
これは、型があわないとアラートが返ってきます。
ダメな理由を教えてください。
Sub test()
Dim arrs As Variant
Dim i As Long
For i = 0 To 200
arrs(i) = i
Next i
End Sub
952デフォルトの名無しさん (スッップ Sd1f-88l+)
2023/01/27(金) 09:46:51.11ID:HtuDNqBEd 全ての行に「Debug.Print TypeName(arrs)」を入れてみると何でダメかわかってくるかもね
953デフォルトの名無しさん (ワッチョイ d3ce-Jpma)
2023/01/27(金) 09:50:45.30ID:Gy/KHy720 >>951
Variant型は便利だけどVBAでは取り扱いが初心者には難しい方だと思う
昨日も変数の型のことで荒れてたけど、できるだけ適切な型を指定した方がバグになりにくい
そのまま動くようにするなら
Sub test()
Dim arrs() As Variant
ReDim arrs(200)
Dim i As Long
For i = 0 To 200
arrs(i) = i
Next i
End Sub
俺が推奨したい書き方は
Const arr_max = 200
Sub test()
Dim arrs(arr_max) As Long
Dim i As Long
For i = 0 To arr_max
arrs(i) = i
Next i
End Sub
Variant型は便利だけどVBAでは取り扱いが初心者には難しい方だと思う
昨日も変数の型のことで荒れてたけど、できるだけ適切な型を指定した方がバグになりにくい
そのまま動くようにするなら
Sub test()
Dim arrs() As Variant
ReDim arrs(200)
Dim i As Long
For i = 0 To 200
arrs(i) = i
Next i
End Sub
俺が推奨したい書き方は
Const arr_max = 200
Sub test()
Dim arrs(arr_max) As Long
Dim i As Long
For i = 0 To arr_max
arrs(i) = i
Next i
End Sub
954デフォルトの名無しさん (ラクッペペ MM7f-ZVkQ)
2023/01/27(金) 09:50:46.53ID:+MAp+PmZM VBAじゃなくてもダメだろ
955デフォルトの名無しさん (ワッチョイ ff02-qYbV)
2023/01/27(金) 10:21:25.20ID:JeWwXD830956デフォルトの名無しさん (ワッチョイ ff02-qYbV)
2023/01/27(金) 10:22:55.83ID:JeWwXD830957デフォルトの名無しさん (JP 0Hff-88l+)
2023/01/27(金) 10:49:30.02ID:PwZKt+DmH 古い言語だからね
仕方ないね
仕方ないね
958デフォルトの名無しさん (スッップ Sd1f-88l+)
2023/01/27(金) 12:06:47.69ID:HtuDNqBEd959デフォルトの名無しさん (アウアウウー Saa7-sGmE)
2023/01/27(金) 15:35:27.15ID:nAK+7/AUa 0から200だと201回繰り返すのも注意
960デフォルトの名無しさん (ワッチョイ ff02-qYbV)
2023/01/27(金) 16:29:58.00ID:JeWwXD830 >>953
200個の要素数が確定されている場合ですかね。
将来配列の要素数が変わることがわかる場合、
どうなりますか。
うーん。
VBAで配列操作するより、セル関数でデータを加工していった方が早いし、
分かりやすい気がしてきた。
200個の要素数が確定されている場合ですかね。
将来配列の要素数が変わることがわかる場合、
どうなりますか。
うーん。
VBAで配列操作するより、セル関数でデータを加工していった方が早いし、
分かりやすい気がしてきた。
961デフォルトの名無しさん (スッップ Sd1f-88l+)
2023/01/27(金) 17:27:12.70ID:HtuDNqBEd962デフォルトの名無しさん (スプッッ Sd1f-aTb4)
2023/01/27(金) 17:38:42.59ID:EY8clDJJd >>960
DimRedimは先に回答した人がいるから
>VBAで配列操作するより、セル関数でデータを加工していった方が早いし、
>分かりやすい気がしてきた。
用途にもよるが分かりやすさとしては間違いなくそう
VBA分からないやつでもどんな操作をしているか分かるのはでかいし
特異なケースのテストもわりと少ない手間で試せる
データの成形入れ替え並び替えは全部関数でやって
そうすると関数の参照先シートを変更する度に重くなるから
マクロでは関数が入ったブックの呼び出しと
操作するデータを参照先シートにコピペする作業を任せる
こんなやり方もあり
一応配列格納のほうがいちいちセルの読み取りしない分速いことは速いが
VBAで書き出す手間とエラーチェックの手間と
仕事ならそれを誰かに引き継ぐことを考えると…って感じ
DimRedimは先に回答した人がいるから
>VBAで配列操作するより、セル関数でデータを加工していった方が早いし、
>分かりやすい気がしてきた。
用途にもよるが分かりやすさとしては間違いなくそう
VBA分からないやつでもどんな操作をしているか分かるのはでかいし
特異なケースのテストもわりと少ない手間で試せる
データの成形入れ替え並び替えは全部関数でやって
そうすると関数の参照先シートを変更する度に重くなるから
マクロでは関数が入ったブックの呼び出しと
操作するデータを参照先シートにコピペする作業を任せる
こんなやり方もあり
一応配列格納のほうがいちいちセルの読み取りしない分速いことは速いが
VBAで書き出す手間とエラーチェックの手間と
仕事ならそれを誰かに引き継ぐことを考えると…って感じ
963デフォルトの名無しさん (ワッチョイ ff02-qYbV)
2023/01/27(金) 17:55:20.59ID:JeWwXD830 ありがとうございます。
そうですね。「i<=200」が正しいです。
要素数をいちいち定義したり再定義しないといけないのは
ちょっと不便ですね。自分でも他の方法ないか調べてみます。
データとして直接見えるというのが、セル関数の良さですね。
VBAの配列だと中のデータ見るのに手間かかる。
参考になりました。みなさんありがとうございました。
そうですね。「i<=200」が正しいです。
要素数をいちいち定義したり再定義しないといけないのは
ちょっと不便ですね。自分でも他の方法ないか調べてみます。
データとして直接見えるというのが、セル関数の良さですね。
VBAの配列だと中のデータ見るのに手間かかる。
参考になりました。みなさんありがとうございました。
964デフォルトの名無しさん (ワッチョイ ff42-JXhU)
2023/01/27(金) 19:38:09.77ID:FOQwFQw10 別に要素数が不確定ならそれなりの組み方があるけどな
965デフォルトの名無しさん (ワントンキン MM27-D/BS)
2023/01/27(金) 20:25:55.36ID:uIWhZEdtM 相手にしたら負け
レス数が950を超えています。1000を超えると書き込みができなくなります。
