!extend:checked:vvvvv:1000:512
↑同じ内容を2行貼り付けるナリ
ExcelのVBAに関する質問スレナリ
コード書き込みや作成依頼もOKナリ
※前スレ
Excel VBA 質問スレ Part70
https://mevius.5ch.net/test/read.cgi/tech/1616072923/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
Excel VBA 質問スレ Part71
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 0f5f-nIK+)
2021/05/25(火) 12:48:01.06ID:mepUVc/i0127デフォルトの名無しさん (ワッチョイ c6da-IO17)
2021/06/05(土) 13:08:34.35ID:X22osQ9q0128デフォルトの名無しさん (ワッチョイ 86da-IO17)
2021/06/05(土) 13:18:33.33ID:+aLYn71C0 >>126
後段の「何か別のCSVファイルを手動で」は、
・別のbook(.xlsx)からPowerQueryでのcsv読込み?
・それともcsvファイルをダブルクリックで直接開き?
PowerQueryでのcsv読込みなら
エンコードを一度自動認識で読み込んでも
後からステップの「ソース」の設定(歯車または詳細エディター)で
固定することも出来るけど・・・
後段の「何か別のCSVファイルを手動で」は、
・別のbook(.xlsx)からPowerQueryでのcsv読込み?
・それともcsvファイルをダブルクリックで直接開き?
PowerQueryでのcsv読込みなら
エンコードを一度自動認識で読み込んでも
後からステップの「ソース」の設定(歯車または詳細エディター)で
固定することも出来るけど・・・
129デフォルトの名無しさん (JP 0H39-IO17)
2021/06/05(土) 13:51:45.19ID:PrzcCeEoH 入力の手間や長くなるのが嫌なら
Dim n%, n1%, n2%, n3%
で全部Integerになる
Dim n%, n1%, n2%, n3%
で全部Integerになる
130デフォルトの名無しさん (ワッチョイ 4abd-lji7)
2021/06/05(土) 14:28:09.00ID:w++2yo+P0 >>128
済みません、VBAでQueryTableを使ってUTF-8のCSVをシートに読み込んだ後、適当なShift-JISのCSVファイルをダブルクリックして直に開くと
開いたCSVの中の2バイト文字が文字化けしています
Excelで開いてるウィンドウを全部閉じてから、CSVを開き直すと文字化けしていません
済みません、VBAでQueryTableを使ってUTF-8のCSVをシートに読み込んだ後、適当なShift-JISのCSVファイルをダブルクリックして直に開くと
開いたCSVの中の2バイト文字が文字化けしています
Excelで開いてるウィンドウを全部閉じてから、CSVを開き直すと文字化けしていません
131デフォルトの名無しさん (ワッチョイ c1da-wkOw)
2021/06/05(土) 15:56:52.45ID:Ko2adBFs0 マクロだけじゃない、Excel全体は基礎ができてないとすぐ壁にぶち当たる
132デフォルトの名無しさん (ワッチョイ 355f-/CHb)
2021/06/05(土) 16:25:26.38ID:eGJ4gYzF0 基礎って何ですか?
133デフォルトの名無しさん (ブーイモ MM39-K8+H)
2021/06/05(土) 16:45:34.26ID:QYWEL8gWM134デフォルトの名無しさん (ワッチョイ ca4f-q291)
2021/06/05(土) 22:09:51.31ID:fW5GrJR10 例えばVBAの基礎と言えば
・モジュールの先頭にはOption Explisit書いて全ての型は明示的に記述すること。
・行、列を扱うときは使用範囲の最大値を考慮してIntegerでなくLong型で定義すること。
・モジュール、関数、変数の名称は一見して何を意味しているのか分かるようにつけること。
・モジュール、メソッド、関数には複数の役割を持たせて作らないこと。
・基本、ひとつの変数に複数の型のインスタンスを代入する場合、Object型を使わずにインターフェースを作成して代入すること。
・グローバル変数は使用せず、プロパティを使用すること。
・VBA上では四捨五入を求めるROUNDは銀行丸めなので必要に応じてWorksheetFunctionのROUNDを使うこと
小数点以下の計算を行う場合、DoubleやSingle型は浮動小数点数扱いでIEEE754準拠のため誤差が発生
することがあることを念頭においておくこと。
まだまだ沢山あるけど
人や会社の厳しさや緩さによって多少は変わるけど
こういった最初の内から押さえていないとマズいことだと思う。
・モジュールの先頭にはOption Explisit書いて全ての型は明示的に記述すること。
・行、列を扱うときは使用範囲の最大値を考慮してIntegerでなくLong型で定義すること。
・モジュール、関数、変数の名称は一見して何を意味しているのか分かるようにつけること。
・モジュール、メソッド、関数には複数の役割を持たせて作らないこと。
・基本、ひとつの変数に複数の型のインスタンスを代入する場合、Object型を使わずにインターフェースを作成して代入すること。
・グローバル変数は使用せず、プロパティを使用すること。
・VBA上では四捨五入を求めるROUNDは銀行丸めなので必要に応じてWorksheetFunctionのROUNDを使うこと
小数点以下の計算を行う場合、DoubleやSingle型は浮動小数点数扱いでIEEE754準拠のため誤差が発生
することがあることを念頭においておくこと。
まだまだ沢山あるけど
人や会社の厳しさや緩さによって多少は変わるけど
こういった最初の内から押さえていないとマズいことだと思う。
135デフォルトの名無しさん (ワッチョイ c6da-IO17)
2021/06/05(土) 22:10:33.71ID:X22osQ9q0 >>130
問題が起きないように使えばいいのでは?
問題が起きないように使えばいいのでは?
136デフォルトの名無しさん (スプッッ Sd72-9b/0)
2021/06/05(土) 22:37:56.35ID:NS39OhGXd137デフォルトの名無しさん (ワッチョイ 4a10-p9zx)
2021/06/05(土) 22:53:56.98ID:zpL5HDoS0 RowがLongなのはわかるけど、
ColumnはIntegerで足りね?
ColumnはIntegerで足りね?
138デフォルトの名無しさん (ワッチョイ 355f-pu9w)
2021/06/05(土) 22:58:04.78ID:OxA9wcds0 WindowsAPIのmciSendString関数を使おうとサンプルコードを見ているのですが、
Callで呼び出さずにrc=と記述されたものばかり見受けられます。
rc=の意味を調べてもなかなか回答が見つからず…これって何なのでしょうか。
Callで呼び出さずにrc=と記述されたものばかり見受けられます。
rc=の意味を調べてもなかなか回答が見つからず…これって何なのでしょうか。
139デフォルトの名無しさん (JP 0H39-IO17)
2021/06/05(土) 23:01:50.30ID:PrzcCeEoH >>138
return code
return code
140デフォルトの名無しさん (ワッチョイ 86da-IO17)
2021/06/05(土) 23:05:55.78ID:+aLYn71C0 1つのbookにシート数44、1シートに1クエリーがあり、
「すべて更新」ボタンでやると部分的にクエリー更新に失敗することが多いため、
一覧表作ってシート名とクエリー名を変数にして
For To Next で順番にクエリーを更新していくマクロを組んだ。
それまではちゃんと機能していたものの、シートの改造・追加・並び替えをしたら、
実行時エラー '-2147319767 (80028029)':
オートメーション エラーです。
無効な前方参照か、コンパイルされていない種類への参照です。
と、エラーが出て途中で止まったでござる。
検索すると「メモリーの使いすぎ?」みたいな話はヒットするも、よくわからず。
プロジェクトエクスプローラー眺めてて、
「シートの順番入れ替えたりしたので、シート名の順番がぐちゃぐちゃになってるな・・・」
と、各シートのプロパティで、
sheet01 (○○○)、sheet02 (□□□)、sheet03 (△△△)・・・
と直してみたら、今度はエラーも出ず、1発で44クエリーが最後までマクロが実行されてもうた。
Dim tblQ As ListObject ' 対象となるクエリーの変数宣言
Dim ws As String ' sheet名の文字列変数宣言
Dim q As String ' クエリー名の文字列変数宣言
(中略)
Set tblQ = ThisWorkbook.Worksheets(ws).ListObjects(q) ←ここで止まった
tblQ.QueryTable.Refresh BackgroundQuery:=False
としてたのだけど、sheet名がマクロの実行順に並んでいないと、
VBAはwsやqの検索に失敗することがある (特にシート数が多い場合)
という理解でいいのかな?
「すべて更新」ボタンでやると部分的にクエリー更新に失敗することが多いため、
一覧表作ってシート名とクエリー名を変数にして
For To Next で順番にクエリーを更新していくマクロを組んだ。
それまではちゃんと機能していたものの、シートの改造・追加・並び替えをしたら、
実行時エラー '-2147319767 (80028029)':
オートメーション エラーです。
無効な前方参照か、コンパイルされていない種類への参照です。
と、エラーが出て途中で止まったでござる。
検索すると「メモリーの使いすぎ?」みたいな話はヒットするも、よくわからず。
プロジェクトエクスプローラー眺めてて、
「シートの順番入れ替えたりしたので、シート名の順番がぐちゃぐちゃになってるな・・・」
と、各シートのプロパティで、
sheet01 (○○○)、sheet02 (□□□)、sheet03 (△△△)・・・
と直してみたら、今度はエラーも出ず、1発で44クエリーが最後までマクロが実行されてもうた。
Dim tblQ As ListObject ' 対象となるクエリーの変数宣言
Dim ws As String ' sheet名の文字列変数宣言
Dim q As String ' クエリー名の文字列変数宣言
(中略)
Set tblQ = ThisWorkbook.Worksheets(ws).ListObjects(q) ←ここで止まった
tblQ.QueryTable.Refresh BackgroundQuery:=False
としてたのだけど、sheet名がマクロの実行順に並んでいないと、
VBAはwsやqの検索に失敗することがある (特にシート数が多い場合)
という理解でいいのかな?
141デフォルトの名無しさん (ワッチョイ 2d8e-Wt59)
2021/06/05(土) 23:06:05.26ID:HEfJq5i50 >>138
その程度の馬鹿頭でWindows APIなんか使うなよ
その程度の馬鹿頭でWindows APIなんか使うなよ
142デフォルトの名無しさん (ワッチョイ 355f-pu9w)
2021/06/05(土) 23:09:38.86ID:OxA9wcds0143デフォルトの名無しさん (ワッチョイ ca4f-q291)
2021/06/05(土) 23:22:29.75ID:fW5GrJR10 >>135
問題が起きにくくするようにのための決めごとだよ
もっとも、やってる仕事場のプログラマーが歩んできた経験則に大きく左右されたりもするから
そこは仕事場ごとのコーディング規約に基づいて組めばいいんじゃないかな。
それはプログラマーのお仕事としての基本になるかな。
>>136
面倒くさいよ。でも他の言語とは比較にならないくらい楽な方だよ。
>>137
またいつシートの行や列が増えないとも限らないじゃん。とある銀行系のところは行や列が増える以前からそんな想定をしてて最初からLong型を使うことがコーディング規約に記載されてたよ。
それにどうせInteger型はLong型を半分マスクしたものだからLong使って処理が遅くなったり容量余計食ったりすることないしね。
問題が起きにくくするようにのための決めごとだよ
もっとも、やってる仕事場のプログラマーが歩んできた経験則に大きく左右されたりもするから
そこは仕事場ごとのコーディング規約に基づいて組めばいいんじゃないかな。
それはプログラマーのお仕事としての基本になるかな。
>>136
面倒くさいよ。でも他の言語とは比較にならないくらい楽な方だよ。
>>137
またいつシートの行や列が増えないとも限らないじゃん。とある銀行系のところは行や列が増える以前からそんな想定をしてて最初からLong型を使うことがコーディング規約に記載されてたよ。
それにどうせInteger型はLong型を半分マスクしたものだからLong使って処理が遅くなったり容量余計食ったりすることないしね。
144デフォルトの名無しさん (スプッッ Sd72-9b/0)
2021/06/05(土) 23:35:33.21ID:NS39OhGXd145デフォルトの名無しさん (ワントンキン MM5a-Srd6)
2021/06/06(日) 00:10:56.51ID:AEt8vzaWM いつものruby馬鹿の自演
146デフォルトの名無しさん (ワッチョイ 355f-pu9w)
2021/06/06(日) 01:19:16.01ID:X88mu3QB0 >>144
ありがとうございます!
ありがとうございます!
147デフォルトの名無しさん (スッップ Sdea-gD/l)
2021/06/06(日) 02:19:15.47ID:rqYM4O//d いつものあいつ
148デフォルトの名無しさん (アウアウウー Sa11-wkOw)
2021/06/06(日) 04:32:20.52ID:V1i0NaJEa >>140
シート順を駄目な順に戻して再現するならそうかも
シート順を駄目な順に戻して再現するならそうかも
149デフォルトの名無しさん (ワッチョイ ca4f-q291)
2021/06/06(日) 10:05:15.65ID:s0YManYn0 Ruby信者はあわしろいくやという人の手先らしい
こんなスレまでわざわざ荒らしに来るちょっと頭が残念な人
こんなスレまでわざわざ荒らしに来るちょっと頭が残念な人
150デフォルトの名無しさん (テテンテンテン MMde-7vXX)
2021/06/06(日) 11:13:17.21ID:GvzTzrtAM151デフォルトの名無しさん (ササクッテロル Sped-q291)
2021/06/06(日) 11:44:13.88ID:kiIZdW9jp まーたあわしろいくやか
152デフォルトの名無しさん (ワッチョイ c1da-wkOw)
2021/06/06(日) 13:08:52.04ID:JiG+HYt80 基礎ってなんですか?って質問している時点で恐ろしいわ。。。
基本を知らずにExcelを操作している社員がいる職場のシートは難解なんだろうなきっと。。。
基本を知らずにExcelを操作している社員がいる職場のシートは難解なんだろうなきっと。。。
153デフォルトの名無しさん (アウアウウー Sa11-/CHb)
2021/06/06(日) 13:48:07.37ID:g5KkmiV+a >マクロだけじゃない、Excel全体は基礎ができてないとすぐ壁にぶち当たる
と言われたらまず基礎がどのぐらいか定義してもらわないと
何言ってるか分からないからだ
と言われたらまず基礎がどのぐらいか定義してもらわないと
何言ってるか分からないからだ
154デフォルトの名無しさん (アウアウウー Sa11-PpBj)
2021/06/06(日) 14:25:18.18ID:+MyNHKVga グローバル変数は許せよ
155デフォルトの名無しさん (ワッチョイ 4abd-lji7)
2021/06/06(日) 15:13:22.89ID:WJZoQhbE0 その変数の問題だと思うんですが、subの中からFunctionをコールして、String型変数を引数で渡しても
Functionの中でその変数が空っぽになります。どうして文字列が渡せないんでしょうか
Function aaa(ByVal hoge As String) As Long を Call aaa(hoge) と書くとaaa内でhogeが空っぽです
Public hoge とかしてみても駄目でした
Functionの中でその変数が空っぽになります。どうして文字列が渡せないんでしょうか
Function aaa(ByVal hoge As String) As Long を Call aaa(hoge) と書くとaaa内でhogeが空っぽです
Public hoge とかしてみても駄目でした
156デフォルトの名無しさん (ワッチョイ d95f-VpLq)
2021/06/06(日) 15:52:47.68ID:1YH+vaIj0 それ自分を呼び出してるだけじゃね
157デフォルトの名無しさん (ワッチョイ c6da-wkOw)
2021/06/06(日) 16:34:01.92ID:vQVSsWXH0 また
158デフォルトの名無しさん (JP 0H39-IO17)
2021/06/06(日) 17:16:44.69ID:PdUE2wOEH >>155
まずはモジュールの先頭にOption Explisitって書いてみ
まずはモジュールの先頭にOption Explisitって書いてみ
159デフォルトの名無しさん (ブーイモ MM2e-E4sj)
2021/06/06(日) 17:31:48.02ID:efAmahNiM 値渡しするならCall aaa((hoge))が望ましい
っていうか返り値があるFunctionってCallで呼び出す?返り値と同じ型の変数に代入とか演算に使ったりしない?
っていうか返り値があるFunctionってCallで呼び出す?返り値と同じ型の変数に代入とか演算に使ったりしない?
160デフォルトの名無しさん (ワッチョイ 1abd-t/gr)
2021/06/06(日) 18:21:18.04ID:pNkKMnVc0 VBAだけではないと思うんだけど、コードって使い回すじゃん?切った貼ったの繰り返しで完成後汚えなぁと思うことない?
あと、コードを保管方法ってなんかないかな?使ったエクセル開いてコピーとかメモ帳とかいろいろやったけど不便でならない。
あと、コードを保管方法ってなんかないかな?使ったエクセル開いてコピーとかメモ帳とかいろいろやったけど不便でならない。
161デフォルトの名無しさん (ワッチョイ 4abd-lji7)
2021/06/06(日) 18:26:33.85ID:WJZoQhbE0 FunctionとSubの違いもよく分かってなかったんですが、Functionの返り値を変数で受けようとした所
そもそも渡したい文字列がFunctionに渡せなくて困ってました
単に、自作の関数を呼び出す時に引数を渡してやればいいだろと思ってたんですが、それが出来ないので
VBAはその辺が厳密なんですかね……?
そもそも渡したい文字列がFunctionに渡せなくて困ってました
単に、自作の関数を呼び出す時に引数を渡してやればいいだろと思ってたんですが、それが出来ないので
VBAはその辺が厳密なんですかね……?
162デフォルトの名無しさん (ブーイモ MM2e-E4sj)
2021/06/06(日) 18:32:25.23ID:efAmahNiM 例えばFunctionで返り値をString型が欲しい場合求める場合
Public Function aaa(ByVal hoge)As String
ってString型を指定してやってFunction内でaaa = 【返したい文字列】ってやる必要があるのは分かる?
Public Function aaa(ByVal hoge)As String
ってString型を指定してやってFunction内でaaa = 【返したい文字列】ってやる必要があるのは分かる?
163デフォルトの名無しさん (ブーイモ MM2e-E4sj)
2021/06/06(日) 18:35:37.03ID:efAmahNiM Functionを呼ぶ側は
bbb = aaa((hoge))
ってやるんよ
参照渡し(ByRef)の場合は変数をダイレクトに書いて良いけど、値渡し(ByVal)の場合は変数を括弧でくくってやらんと上手く渡せない場合がある。
bbb = aaa((hoge))
ってやるんよ
参照渡し(ByRef)の場合は変数をダイレクトに書いて良いけど、値渡し(ByVal)の場合は変数を括弧でくくってやらんと上手く渡せない場合がある。
164デフォルトの名無しさん (ワッチョイ ca4f-q291)
2021/06/06(日) 19:11:37.69ID:s0YManYn0165デフォルトの名無しさん (スプッッ Sdca-7DC9)
2021/06/06(日) 19:27:28.02ID:HeHF5+P0d 場合って何よ 具体的に書きなよ
166デフォルトの名無しさん (ブーイモ MM2e-E4sj)
2021/06/06(日) 19:56:36.98ID:efAmahNiM >>165
参照渡しと値渡しを同時に行う際、値渡しの変数に括弧をつけておらず、尚且つ変数のみである場合、参照渡しとして認識されるが呼び先では値渡し指定なので不一致であるとエラーを吐いて停止する(但し変数に対して演算を行っていた場合は値渡しとして認識される)から値渡しする時は括弧つける癖をつけろ。その方が可読性もあがる。
って言えば満足か?
参照渡しと値渡しを同時に行う際、値渡しの変数に括弧をつけておらず、尚且つ変数のみである場合、参照渡しとして認識されるが呼び先では値渡し指定なので不一致であるとエラーを吐いて停止する(但し変数に対して演算を行っていた場合は値渡しとして認識される)から値渡しする時は括弧つける癖をつけろ。その方が可読性もあがる。
って言えば満足か?
167デフォルトの名無しさん (JP 0H39-IO17)
2021/06/06(日) 20:01:57.50ID:PdUE2wOEH >>164
言うか言わないかは個人の認識の問題
言うか言わないかは個人の認識の問題
168デフォルトの名無しさん (ワッチョイ ca4f-q291)
2021/06/06(日) 20:28:43.00ID:s0YManYn0 >>166
うん?
それ何か違う気がする
演算した後値渡しでエラーになると言うことは、そもそも渡す引数の呼び出す側の値が呼び出される関数の引数の型で許容されるものでは無かったってことじゃないの?
例えば呼ぶ側でVariant型を定義した変数に“1”という文字列を入れていて、それを受ける呼び出される側の引数が
Integer型に宣言されていた場合は型違いでエラーになるけど、呼び出し前にその変数に対して+1したものを代入すればその時点で暗黙の変化によりVariantの
内部型はIntegerになるから型が合ってエラーにはならない。という状況で、
括弧の話とはあまり関係ない気がするんだけど認識違う?
うん?
それ何か違う気がする
演算した後値渡しでエラーになると言うことは、そもそも渡す引数の呼び出す側の値が呼び出される関数の引数の型で許容されるものでは無かったってことじゃないの?
例えば呼ぶ側でVariant型を定義した変数に“1”という文字列を入れていて、それを受ける呼び出される側の引数が
Integer型に宣言されていた場合は型違いでエラーになるけど、呼び出し前にその変数に対して+1したものを代入すればその時点で暗黙の変化によりVariantの
内部型はIntegerになるから型が合ってエラーにはならない。という状況で、
括弧の話とはあまり関係ない気がするんだけど認識違う?
169デフォルトの名無しさん (ワッチョイ ca4f-q291)
2021/06/06(日) 20:30:46.16ID:s0YManYn0 暗黙の変化ってなんだよ暗黙の変換ね
170デフォルトの名無しさん (ワッチョイ 09fd-E4sj)
2021/06/06(日) 20:42:48.07ID:aS7dMAuf0 Public Sub aaa()
Dim aa As String, bb As String, cc As Long
bb = ″b″
cc = 2
aa = bbb(bb, cc)
End Sub
Public Function bbb(ByRef b As String, ByVal c As Long)As String
(中略)
End Sub
ってやるとFunction入る前にエラーで弾かれて
aa = bbb(bb, (cc))ってやったりaa = bbb(bb, cc + 1)ってやったりすると通るんだがおま環だった?
Dim aa As String, bb As String, cc As Long
bb = ″b″
cc = 2
aa = bbb(bb, cc)
End Sub
Public Function bbb(ByRef b As String, ByVal c As Long)As String
(中略)
End Sub
ってやるとFunction入る前にエラーで弾かれて
aa = bbb(bb, (cc))ってやったりaa = bbb(bb, cc + 1)ってやったりすると通るんだがおま環だった?
171デフォルトの名無しさん (ワッチョイ d95f-VpLq)
2021/06/06(日) 20:47:53.29ID:1YH+vaIj0 なにエラー?
172デフォルトの名無しさん (ワッチョイ 86da-IO17)
2021/06/06(日) 21:00:41.59ID:qWOh0TID0173デフォルトの名無しさん (ワッチョイ ca4f-q291)
2021/06/06(日) 21:34:20.79ID:s0YManYn0 >>170
コピーして実行してみたけど
まず“b”のダブルクォーテーションが全角なのと、Functionを閉じているところがEnd Subになっている。
コンパイルした時点でエラーで弾かれたよ。
そこを修正したらエラーが出なくなった。
コピーして実行してみたけど
まず“b”のダブルクォーテーションが全角なのと、Functionを閉じているところがEnd Subになっている。
コンパイルした時点でエラーで弾かれたよ。
そこを修正したらエラーが出なくなった。
174デフォルトの名無しさん (ワッチョイ c6da-IO17)
2021/06/06(日) 22:08:04.98ID:vQVSsWXH0 >>170
ファイル壊れてんじゃね
ファイル壊れてんじゃね
175デフォルトの名無しさん (ワッチョイ ca4f-q291)
2021/06/06(日) 22:13:12.19ID:s0YManYn0 関数やメソッドに括弧が必要なのは確か
・Functionで戻り値を受ける場合
・Subで頭にCallを付けない場合
じゃなかったっけ?
後、括弧で括らないと順序関係なく
個別に引数を設定することが
出来るんじゃなかったっけか?
まぁ自分としては何であれ括弧を付けて
Subの場合は頭にCall付けて関数やメソッドが
呼ばれていることを明示する
必要があると思うけど。
あまり引数が多い関数は引数そのものを
抱えるエンティティクラスを作って
そのインスタンスを引数で渡してやれば
いい気がするしその方が可読性高いよね。
・Functionで戻り値を受ける場合
・Subで頭にCallを付けない場合
じゃなかったっけ?
後、括弧で括らないと順序関係なく
個別に引数を設定することが
出来るんじゃなかったっけか?
まぁ自分としては何であれ括弧を付けて
Subの場合は頭にCall付けて関数やメソッドが
呼ばれていることを明示する
必要があると思うけど。
あまり引数が多い関数は引数そのものを
抱えるエンティティクラスを作って
そのインスタンスを引数で渡してやれば
いい気がするしその方が可読性高いよね。
176デフォルトの名無しさん (ワッチョイ 4abd-lji7)
2021/06/06(日) 23:50:30.47ID:WJZoQhbE0 >>162-163
ありがとうございます、値渡しがどうしても上手く行かなかったので試してみます
ありがとうございます、値渡しがどうしても上手く行かなかったので試してみます
177デフォルトの名無しさん (アウアウウー Sa11-Wnv+)
2021/06/07(月) 10:20:45.70ID:nhaEx8Ewa 大きな声で言えないけど、おれoption explicit付けたこと無いしグローバルじゃない変数は宣言しないで使ってる。グローバルな変数大好き
178デフォルトの名無しさん (ワッチョイ 4ada-wkOw)
2021/06/07(月) 10:24:31.34ID:La1yJ3oH0 え?option explicit付けない人見たことない。。。
179デフォルトの名無しさん (アウアウウー Sa11-Wnv+)
2021/06/07(月) 10:27:14.26ID:nhaEx8Ewa だって俺お前と会ったことねーもん
180デフォルトの名無しさん (ササクッテロラ Sped-q291)
2021/06/07(月) 10:45:43.81ID:/bT+ATEvp まーたあわしろいくやの手下のRuby信者か
181デフォルトの名無しさん (ワッチョイ c149-M7qm)
2021/06/07(月) 10:49:48.00ID:1dhF/BUe0 ゆうてそういうことしないよって人はプログラマとかじゃないんやろ
プログラマやってたら不安になると思うし
プログラマやってたら不安になると思うし
182デフォルトの名無しさん (エムゾネ FFea-ywzN)
2021/06/07(月) 11:02:15.80ID:BLDePS2QF183デフォルトの名無しさん (ワッチョイ c6da-IO17)
2021/06/07(月) 11:36:42.90ID:5JFCMcJv0 Ruby に option explicit は無いからな
184デフォルトの名無しさん (テテンテンテン MMde-7vXX)
2021/06/07(月) 11:53:27.33ID:faCSe2qcM185デフォルトの名無しさん (ササクッテロラ Sped-q291)
2021/06/07(月) 12:02:42.50ID:/bT+ATEvp >>182
Pythonなんか使う意味が分からん
Pythonなんか使う意味が分からん
186デフォルトの名無しさん (アウアウウー Sa11-Wnv+)
2021/06/07(月) 12:06:17.59ID:nhaEx8Ewa 俺みたいな事務屋さんは知ってても必要ないんだってば。事務屋さんだから>>184みたいに大きな声は出さないけど
でも流石にRubyの人と同一視するのはやめて。けっこう傷付くし悲しい
でも流石にRubyの人と同一視するのはやめて。けっこう傷付くし悲しい
187デフォルトの名無しさん (ササクッテロラ Sped-q291)
2021/06/07(月) 12:39:03.71ID:/bT+ATEvp 知らないで使わないのはただの無知
知ってて使わないのは悪質なバカ
知ってて使わないのは悪質なバカ
188デフォルトの名無しさん (ラクッペペ MMde-+uhU)
2021/06/07(月) 12:46:48.42ID:8ILcpsz2M VBAって宣言せずに使ったらローカルになるんだっけ?
プロと違って適当にかくから強制ひっすだわ
こういうところに書くのは省略しまくるけどな
プロと違って適当にかくから強制ひっすだわ
こういうところに書くのは省略しまくるけどな
189デフォルトの名無しさん (テテンテンテン MMde-7vXX)
2021/06/07(月) 13:32:24.67ID:faCSe2qcM190デフォルトの名無しさん (ワッチョイ 4a7c-PpBj)
2021/06/07(月) 19:28:59.24ID:9yldYH/70 >>73 すごい亀レスだが、dispatchEventでなんとかなったわ でもいつできなくなるかドキドキ ieは終わりの圧力に屈しそう
191デフォルトの名無しさん (JP 0H39-IO17)
2021/06/08(火) 01:11:20.22ID:gtN4dmk3H192デフォルトの名無しさん (ワッチョイ 4ada-wkOw)
2021/06/08(火) 02:25:46.24ID:1f6b7zm30 普通さ、最初に覚えるだろoption explicitは?
それらを参考書とかで勉強してこなかった人とかいるのかなと?
まあ、どう運用しようがその人の勝手だろうけどさ。
それらを参考書とかで勉強してこなかった人とかいるのかなと?
まあ、どう運用しようがその人の勝手だろうけどさ。
193デフォルトの名無しさん (ワッチョイ a910-lFHD)
2021/06/08(火) 04:42:23.25ID:RLQzdArC0 option explicitは知ってるが
いちいち書かんし設定もせん
宣言は常にやる、それだけ
いちいち書かんし設定もせん
宣言は常にやる、それだけ
194デフォルトの名無しさん (テテンテンテン MMde-7vXX)
2021/06/08(火) 05:09:06.45ID:bCI8JHzDM >>193
いちいち書く?
まあその程度のオツムならたいしたコードは書いてないだろうから使わなくてもいいかもねw
https://itsakura.com/wp-content/uploads/2017/07/excel-vba-explicit2.png
いちいち書く?
まあその程度のオツムならたいしたコードは書いてないだろうから使わなくてもいいかもねw
https://itsakura.com/wp-content/uploads/2017/07/excel-vba-explicit2.png
195デフォルトの名無しさん (ワッチョイ d95f-0Hzh)
2021/06/08(火) 08:18:59.91ID:GIt8+gr30196デフォルトの名無しさん (ワッチョイ c105-3tT5)
2021/06/08(火) 08:20:58.32ID:wrp61arm0 Task オブジェクトってなんでWordだけなん?
197デフォルトの名無しさん (ワッチョイ ca4f-q291)
2021/06/08(火) 09:07:28.17ID:3w2dwJfs0 >>194
自動構文チェックONにしているんだ。
別にどっちがいいって訳じゃないけど俺はOFF派。
コード書いてる最中にどこかのコードコピーして持って来たいときカーソル当てると
エラーのメッセージボックスが上がって元の位置に戻されるのが鬱陶しいのと
他の開発で使ってるVisual Studioが元々そんな感じだからそっちに合わせてる。
ただそうするとエラー部分が赤くなるだけでどんなエラーかは表示しないから一長一短。
OFFはパッと見でどんなエラーか分かる人向けでそれ以外の人にはお勧め出来ない。
自動構文チェックONにしているんだ。
別にどっちがいいって訳じゃないけど俺はOFF派。
コード書いてる最中にどこかのコードコピーして持って来たいときカーソル当てると
エラーのメッセージボックスが上がって元の位置に戻されるのが鬱陶しいのと
他の開発で使ってるVisual Studioが元々そんな感じだからそっちに合わせてる。
ただそうするとエラー部分が赤くなるだけでどんなエラーかは表示しないから一長一短。
OFFはパッと見でどんなエラーか分かる人向けでそれ以外の人にはお勧め出来ない。
198デフォルトの名無しさん (ワッチョイ ca4f-q291)
2021/06/08(火) 09:12:57.77ID:3w2dwJfs0199デフォルトの名無しさん (テテンテンテン MMde-7vXX)
2021/06/08(火) 09:19:38.53ID:rnKdyaoGM200デフォルトの名無しさん (テテンテンテン MMde-7vXX)
2021/06/08(火) 09:24:20.65ID:rnKdyaoGM201デフォルトの名無しさん (アウアウウー Sa11-Wnv+)
2021/06/08(火) 09:56:53.56ID:zTVPbGTxa 変な場所って、プロシージャの真ん中あたりに宣言がポッと出てくるやつか?
いちいち上に戻って書き足すのがクソダルい気持ちは分かる
いちいち上に戻って書き足すのがクソダルい気持ちは分かる
202デフォルトの名無しさん (ワッチョイ ca4f-q291)
2021/06/08(火) 10:01:13.33ID:3w2dwJfs0203デフォルトの名無しさん (アウアウウー Sa11-Wnv+)
2021/06/08(火) 10:10:38.85ID:zTVPbGTxa 違う違う、そうじゃなくて、初心者がコード書く時にエラー吐かれる度にその場で直した結果として変なところで宣言してるやつってこと
204デフォルトの名無しさん (ワッチョイ ca4f-q291)
2021/06/08(火) 10:32:12.38ID:3w2dwJfs0 >>203
Option Explicitとは関係ない話?
だったら本題と内容がズレるな。
>違う違う、そうじゃなくて、初心者がコード書く時にエラー吐かれる度にその場で直した結果として変なところで宣言してるやつってこと
これは初心者というか.Net系やJavaとかやってる人に書かせてもそう書くときがある
関数内で定義したVBAのDimとかのスコープが関数単位で効くものでなくて
If とか For とかのブロック単位で効くものと勘違いしているらしい。
Option Explicitとは関係ない話?
だったら本題と内容がズレるな。
>違う違う、そうじゃなくて、初心者がコード書く時にエラー吐かれる度にその場で直した結果として変なところで宣言してるやつってこと
これは初心者というか.Net系やJavaとかやってる人に書かせてもそう書くときがある
関数内で定義したVBAのDimとかのスコープが関数単位で効くものでなくて
If とか For とかのブロック単位で効くものと勘違いしているらしい。
205デフォルトの名無しさん (テテンテンテン MMde-7vXX)
2021/06/08(火) 10:36:39.71ID:zPjYlIziM206デフォルトの名無しさん (ワッチョイ ca4f-q291)
2021/06/08(火) 10:47:13.49ID:3w2dwJfs0 >>205
それは可読性の問題
あくまで俺だったらだけど同一スコープの先頭に書くな。後で変数定義して既に使われてる変数書いてエラーになって「あ」ってなるの嫌だし
一々コードから何の型で宣言しているのか探しにいくのも面倒くさい。
それは可読性の問題
あくまで俺だったらだけど同一スコープの先頭に書くな。後で変数定義して既に使われてる変数書いてエラーになって「あ」ってなるの嫌だし
一々コードから何の型で宣言しているのか探しにいくのも面倒くさい。
207デフォルトの名無しさん (アウアウウー Sa11-Wnv+)
2021/06/08(火) 10:51:37.03ID:zTVPbGTxa208デフォルトの名無しさん (ワッチョイ ca4f-q291)
2021/06/08(火) 11:03:04.11ID:3w2dwJfs0 >>207
よく嫁
>俺も宣言は他言語同様やるがOptionは気にしないな
>下手するとそれがあるせいで変な場所で宣言してる例をよく見る
Optionがあるせいで変な場所に宣言してる例をよく見るって書いてあるだろ?
そっちの話はOptionの話と関係ある?
後、宣言する場所に関しては老害とかないから安心していいぞ。何故ならもっと新しい言語のVB.NetやC#でも効くスコープの先頭に書くのが一般的だから。
よく嫁
>俺も宣言は他言語同様やるがOptionは気にしないな
>下手するとそれがあるせいで変な場所で宣言してる例をよく見る
Optionがあるせいで変な場所に宣言してる例をよく見るって書いてあるだろ?
そっちの話はOptionの話と関係ある?
後、宣言する場所に関しては老害とかないから安心していいぞ。何故ならもっと新しい言語のVB.NetやC#でも効くスコープの先頭に書くのが一般的だから。
209デフォルトの名無しさん (アウアウウー Sa11-Wnv+)
2021/06/08(火) 11:06:06.39ID:zTVPbGTxa210デフォルトの名無しさん (ワッチョイ ca4f-q291)
2021/06/08(火) 11:07:57.69ID:3w2dwJfs0211デフォルトの名無しさん (ワッチョイ d95f-0Hzh)
2021/06/08(火) 11:09:49.36ID:GIt8+gr30 >>201
まさにそれ
まさにそれ
212デフォルトの名無しさん (テテンテンテン MMde-7vXX)
2021/06/08(火) 11:10:37.61ID:bCI8JHzDM >>206
別にお前さんに強要するつもりはないから自分の好きな様に書いてくれ
ただIDEの使い方位は覚えておいた方がいいんじゃないかな
> 一々コードから何の型で宣言しているのか探しにいくのも面倒くさい。
別にお前さんに強要するつもりはないから自分の好きな様に書いてくれ
ただIDEの使い方位は覚えておいた方がいいんじゃないかな
> 一々コードから何の型で宣言しているのか探しにいくのも面倒くさい。
213デフォルトの名無しさん (アウアウウー Sa11-Wnv+)
2021/06/08(火) 11:15:14.30ID:zTVPbGTxa214デフォルトの名無しさん (ワッチョイ ca4f-q291)
2021/06/08(火) 11:16:08.53ID:3w2dwJfs0 >>212
Visual Studio辺りであればカーソル合わせると
定義した型が表示されるから分かるが
VBAの場合は一々「型の定義」でそこまで
飛ばないといけないし、何度か最寄りの型まで
調べると元の位置に戻ってくるのも
面倒だと思ってるんだけど認識違う?
違うんならそのIDEの使い方とやらを
提示して頂けると有り難いんだけどな
Visual Studio辺りであればカーソル合わせると
定義した型が表示されるから分かるが
VBAの場合は一々「型の定義」でそこまで
飛ばないといけないし、何度か最寄りの型まで
調べると元の位置に戻ってくるのも
面倒だと思ってるんだけど認識違う?
違うんならそのIDEの使い方とやらを
提示して頂けると有り難いんだけどな
215デフォルトの名無しさん (ブーイモ MM2e-E4sj)
2021/06/08(火) 11:20:57.88ID:Bz/vS+dRM 変数の宣言って頭でまとめて宣言するより使う場所で宣言するのが今の主流だった気がするけどウチの会社だけなんかな
216デフォルトの名無しさん (ワッチョイ ca4f-q291)
2021/06/08(火) 11:24:56.38ID:3w2dwJfs0 >>213
よく分からないな
初心者だから変数定義をしていないといいつつ
変数定義しているところがポッと出てくるという。
変数定義してたりしてなかったりというのであれば
もうそういう次元の話ではなくなってくる。
よく分からないな
初心者だから変数定義をしていないといいつつ
変数定義しているところがポッと出てくるという。
変数定義してたりしてなかったりというのであれば
もうそういう次元の話ではなくなってくる。
217デフォルトの名無しさん (ワッチョイ a910-lFHD)
2021/06/08(火) 11:25:51.75ID:RLQzdArC0 >>194
だから「設定」と書いてあるだろアホ
だから「設定」と書いてあるだろアホ
218デフォルトの名無しさん (ワッチョイ ca4f-q291)
2021/06/08(火) 11:32:15.16ID:3w2dwJfs0 >>215
状況がよく分からないけど
「使う場所で宣言する」というのは
スコープ毎に纏めていないと言うことだろうか
少なくとも俺が今までやった言語では
そんな流行りは見たことないなぁ
というか見辛いもの
状況がよく分からないけど
「使う場所で宣言する」というのは
スコープ毎に纏めていないと言うことだろうか
少なくとも俺が今までやった言語では
そんな流行りは見たことないなぁ
というか見辛いもの
219デフォルトの名無しさん (テテンテンテン MMde-7vXX)
2021/06/08(火) 11:47:18.41ID:eotEY1L4M >>217
おじいちゃん、もうそのレベルの低い話は終わってるからw
おじいちゃん、もうそのレベルの低い話は終わってるからw
220デフォルトの名無しさん (アウアウウー Sa11-Wnv+)
2021/06/08(火) 12:12:36.32ID:zTVPbGTxa221デフォルトの名無しさん (ワッチョイ ca4f-q291)
2021/06/08(火) 12:44:31.31ID:3w2dwJfs0 >>220
言いたいことはやっと伝わった
では話を戻そう。そのコードを見てどう思った?
変数宣言強制設定して変数宣言書き込まないとエラーが出るようにするのが悪いと思った?
そんな奴がポッとそんなところに変数宣言を書き込んだ奴が悪いと思った?
前者というのであればここで話はもう終わり。
恐らくこれ以上話してもお互い得られるものは何もないと思う。
後者と言うのであれば、変数宣言強制した際に少なくとも変数が宣言されていないことは発覚する。これだけで恩恵があることは理解出来るかな?
その辺にポッと書いてしまったことはそれ自体が問題であり、その人に促せばいいんじゃないかと思うけど?
言いたいことはやっと伝わった
では話を戻そう。そのコードを見てどう思った?
変数宣言強制設定して変数宣言書き込まないとエラーが出るようにするのが悪いと思った?
そんな奴がポッとそんなところに変数宣言を書き込んだ奴が悪いと思った?
前者というのであればここで話はもう終わり。
恐らくこれ以上話してもお互い得られるものは何もないと思う。
後者と言うのであれば、変数宣言強制した際に少なくとも変数が宣言されていないことは発覚する。これだけで恩恵があることは理解出来るかな?
その辺にポッと書いてしまったことはそれ自体が問題であり、その人に促せばいいんじゃないかと思うけど?
222デフォルトの名無しさん (ワッチョイ a910-lFHD)
2021/06/08(火) 12:53:13.82ID:RLQzdArC0 >>219
自分の間違いが顕わになって、反論できないバカ
自分の間違いが顕わになって、反論できないバカ
223デフォルトの名無しさん (ラクッペペ MMde-+uhU)
2021/06/08(火) 12:59:24.76ID:iJBocUpIM くだらないタイプミスで時間を無駄にしたことはありませんか?
224デフォルトの名無しさん (ドコグロ MM72-uNeL)
2021/06/08(火) 13:04:42.37ID:5PCuzcGlM 設定のことを含めた話ということすら読み取れてなかった7vXXが一番レベル低かったな
225デフォルトの名無しさん (ワッチョイ ca4f-q291)
2021/06/08(火) 13:09:06.95ID:3w2dwJfs0 >>223
ない・・・と言いたいところだけどどうやっても0にはならんわなw
いつも思うのがOption ExplicitがあるんだからOption Strictも用意しといてくれればいいのにと。
変換に際して暗黙の変換をさせずにどれも明示的な変換を漏らさずさせられるようになれば
テストする際も安心して走らせられるのにって思う。
もっとも、人によっては面倒くさいと思う人が出るんだろうなぁ・・・
ない・・・と言いたいところだけどどうやっても0にはならんわなw
いつも思うのがOption ExplicitがあるんだからOption Strictも用意しといてくれればいいのにと。
変換に際して暗黙の変換をさせずにどれも明示的な変換を漏らさずさせられるようになれば
テストする際も安心して走らせられるのにって思う。
もっとも、人によっては面倒くさいと思う人が出るんだろうなぁ・・・
226デフォルトの名無しさん (ラクッペペ MMde-+uhU)
2021/06/08(火) 13:09:33.83ID:iJBocUpIM >>218
C#でvar使うなら型の確定する現地じゃないとだめじゃね?
C#でvar使うなら型の確定する現地じゃないとだめじゃね?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【おこめ券】鈴木農相 米価維持の意図「一切ない」 [ぐれ★]
- 【警視庁】走行中の電車で女性に露出した下半身押しつけたか 無職の男(46)逮捕「チャンスがあればいつでもやる」 [nita★]
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★6 [七波羅探題★]
- 【苺ましまろ】立民衆院議員、人気漫画の水着少女画像を「醜悪」タイ人少女の性搾取事件と関連付け…党内で反発 [少考さん★]
- 「残業キャンセル界隈」若者が増加?「職務放棄」との批判も…“定時退社の権利”どこまで通用するか [七波羅探題★]
- 中国軍機レーダー照射、トランプ氏沈黙突く 試される日本外交 ★5 [蚤の市★]
- 【実況】博衣こよりのえちえちチーズケーキを仕込み(雑談あり)🧪
- 【速報】1ポンド210円で日英GDP逆転(残り1.5円)...世界6位の経済規模に転落 [237216734]
- 【超速報】統一教会、陳謝 [519511584]
- 高市政権「かけてもつながらない。機能していない」防衛当局間のホットライン機能せず [834922174]
- 30過ぎた大人おじさんが大学生(昔)のままのファッションをする「おじさんキッズコーデ」、炎上して問題視される。 [153490809]
- 【高市悲報】中国軍「公海で空母の発着訓練するって事前通告したのになんで自衛隊機は急接近してきたんだ…?」中国軍困惑★2 [931948549]
