!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/i0101デフォルトの名無しさん (ワッチョイ 934f-urWM)
2021/06/03(木) 12:47:20.61ID:jnApLDzu0 >>99
はー、都度テストするとはご苦労なこった
つまり大きなシステムになるとその分、
Rubyの場合は毎週テストに労力と人員割いて
金掛けて実施しないとダメってことか
かなり大きな会社じゃないとそこまで融通効かないだろうな
はー、都度テストするとはご苦労なこった
つまり大きなシステムになるとその分、
Rubyの場合は毎週テストに労力と人員割いて
金掛けて実施しないとダメってことか
かなり大きな会社じゃないとそこまで融通効かないだろうな
102デフォルトの名無しさん (スップ Sdf3-B4oC)
2021/06/03(木) 13:13:14.99ID:4GINtqWnd >>98
PowerShell便利だぞ
PowerShell便利だぞ
10394 (ワッチョイ 512c-0h5H)
2021/06/03(木) 13:36:20.37ID:Ers5yK+g0 毎週、モジュールを更新するのは基本。
更新を貯めたら、保守・修正できなくなるので、ダメ。
こまめに・ちょくちょく更新
例えば、サイボウズ・Kintone は、
Kubernetes で毎日システムを作り直しているとか、
Netflix は毎日、わざとシステムを攻撃して、落としてテストしたりする
ちゃんと運用していない会社は、更新をほったらかしにしてる
更新を貯めたら、保守・修正できなくなるので、ダメ。
こまめに・ちょくちょく更新
例えば、サイボウズ・Kintone は、
Kubernetes で毎日システムを作り直しているとか、
Netflix は毎日、わざとシステムを攻撃して、落としてテストしたりする
ちゃんと運用していない会社は、更新をほったらかしにしてる
10494 (ワッチョイ 512c-0h5H)
2021/06/03(木) 13:46:13.92ID:Ers5yK+g0 毎週1回、OS の更新も大変だから、
サーバーレス・自分でOSを管理しない、AWS Fargate を使えと言われる。
AWSが、OSの更新をやってくれるから
だから、YouTube で有名な、雑食系エンジニア・KENTA の、
Ruby on Rails 初心者用コースに、AWS Fargate も入っている
それで皆、くろかわこうへいのサロンで、AWSを勉強する
Railsも今まで1人で、Heroku で作っていたのが、
Fargate, Terraform に変わってきてる
今の1年の未経験者は、10年以上のプロよりも、技術力が上になってる
サーバーレス・自分でOSを管理しない、AWS Fargate を使えと言われる。
AWSが、OSの更新をやってくれるから
だから、YouTube で有名な、雑食系エンジニア・KENTA の、
Ruby on Rails 初心者用コースに、AWS Fargate も入っている
それで皆、くろかわこうへいのサロンで、AWSを勉強する
Railsも今まで1人で、Heroku で作っていたのが、
Fargate, Terraform に変わってきてる
今の1年の未経験者は、10年以上のプロよりも、技術力が上になってる
105デフォルトの名無しさん (ワッチョイ 934f-urWM)
2021/06/03(木) 14:22:18.35ID:jnApLDzu010694 (ワッチョイ 512c-0h5H)
2021/06/03(木) 14:37:37.44ID:Ers5yK+g0 KENTA・くろかわこうへい、Udemy の人気講師・山浦清透などが現れて、
Ruby on Rails の教育革命が起こった
ものすごい短期間で、効率的に学べる。
それで、1年ぐらい勉強した未経験者が、10年以上のプロよりも、技術力が上になった
東大合格マンガ「ドラゴン桜」みたいなもの
今の未経験者は、Docker Compose も必須
Ruby on Rails の教育革命が起こった
ものすごい短期間で、効率的に学べる。
それで、1年ぐらい勉強した未経験者が、10年以上のプロよりも、技術力が上になった
東大合格マンガ「ドラゴン桜」みたいなもの
今の未経験者は、Docker Compose も必須
107デフォルトの名無しさん (ワッチョイ f101-2Cmt)
2021/06/03(木) 19:23:17.96ID:TUnqxA7B0108デフォルトの名無しさん (ワッチョイ 9302-4Wjq)
2021/06/03(木) 20:56:05.21ID:uLpHnOIZ0 効率化できるけど使うやつらが池沼で勉強した意味なかったな
109デフォルトの名無しさん (ワッチョイ 9342-bBgm)
2021/06/03(木) 21:12:55.36ID:L0NZ98mH0 効率化よりもいかにシートの内容を壊されないようにするかの工夫ばかり必要なパターンだな
110デフォルトの名無しさん (ワッチョイ abda-6ypv)
2021/06/03(木) 22:14:51.09ID:D5fnCzXq0 自力でできることを質問した場合、解答がなくても困らんだろ
111デフォルトの名無しさん (ワッチョイ f101-2Cmt)
2021/06/03(木) 22:50:40.18ID:TUnqxA7B0 >>98
発注出来る開発部署があるなら、そっちに投げた方が楽なんじゃ?
発注出来る開発部署があるなら、そっちに投げた方が楽なんじゃ?
112デフォルトの名無しさん (JP 0H39-IO17)
2021/06/04(金) 01:48:20.45ID:JjzCcUaXH 朗報
やっぱりオブジェクトは残る
> MSHTML(Trident)エンジンに関しても、互換性維持のため
> すぐに削除されることはない。OS内部に「IE 11」由来の
> 機能は残る。「WebBrowser」コントロールを利用するアプリも
> 引き続き利用できる。
https://i.imgur.com/BWnVYki.png
やっぱりオブジェクトは残る
> MSHTML(Trident)エンジンに関しても、互換性維持のため
> すぐに削除されることはない。OS内部に「IE 11」由来の
> 機能は残る。「WebBrowser」コントロールを利用するアプリも
> 引き続き利用できる。
https://i.imgur.com/BWnVYki.png
113デフォルトの名無しさん (ワッチョイ 09fd-E4sj)
2021/06/04(金) 01:56:50.63ID:/SvJ4cKr0 >>111
別部署とのお金のやり取りが発生するからメチャクチャ渋るぞ
別部署とのお金のやり取りが発生するからメチャクチャ渋るぞ
114デフォルトの名無しさん (ワッチョイ 2501-kwJE)
2021/06/04(金) 02:06:55.76ID:ggq9OdP30 >>113
そんなん会社ごとによるし俺に言われても
そんなん会社ごとによるし俺に言われても
115デフォルトの名無しさん (ワッチョイ 6ddb-9b/0)
2021/06/04(金) 12:36:18.19ID:tGFTJ4F20 最初は、動いていたのですが、
そのうち、毎回6行目でエラーが出るようになってしまいました。
例えば
D5セルに入力した3桁の数字をした時に
D7に百の位、E7に十の位、F7に一の位を表示させたいのです。
入力した結果を見て、再入力することもあるので
関数⇒値貼り付けはやりたくないのです。
できれば、どなたかご教授をお願いします。
ファイルのシートは1枚のみです。
【1 OSの種類 】 Windows10
【2 Excelのバージョン】 office365
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Long
If (Target.Row >= 5 And Target.Row <= 161) And (Target.Row Mod 4 = 1) And (Target.Column = 4) Then
r = Target.Row
Cells(r + 2, 4) = Cells(r, 4) \ 100
Cells(r + 2, 5) = Cells(r, 4) \ 10 Mod 10 ← 実行時エラー1004
Cells(r + 2, 6) = Cells(r, 4) Mod 10
End If
End Sub
そのうち、毎回6行目でエラーが出るようになってしまいました。
例えば
D5セルに入力した3桁の数字をした時に
D7に百の位、E7に十の位、F7に一の位を表示させたいのです。
入力した結果を見て、再入力することもあるので
関数⇒値貼り付けはやりたくないのです。
できれば、どなたかご教授をお願いします。
ファイルのシートは1枚のみです。
【1 OSの種類 】 Windows10
【2 Excelのバージョン】 office365
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Long
If (Target.Row >= 5 And Target.Row <= 161) And (Target.Row Mod 4 = 1) And (Target.Column = 4) Then
r = Target.Row
Cells(r + 2, 4) = Cells(r, 4) \ 100
Cells(r + 2, 5) = Cells(r, 4) \ 10 Mod 10 ← 実行時エラー1004
Cells(r + 2, 6) = Cells(r, 4) Mod 10
End If
End Sub
116デフォルトの名無しさん (ワッチョイ 6ddb-9b/0)
2021/06/04(金) 12:48:38.27ID:tGFTJ4F20 >>115
補足
最初、エラーが出たやつ
Cells(r + 2, 4) = Left(Cells(r, 4).Text, 1)
Cells(r + 2, 5) = Mid(Cells(r, 4).Text, 2, 1)
Cells(r + 2, 6) = Right(Cells(r, 4).Text, 1)
修正しても
Cells(r + 2, 4) = Cells(r, 4) \ 100
Cells(r + 2, 5) = Cells(r, 4) \ 10 Mod 10 ← 実行時エラー1004
Cells(r + 2, 6) = Cells(r, 4) Mod 10
補足
最初、エラーが出たやつ
Cells(r + 2, 4) = Left(Cells(r, 4).Text, 1)
Cells(r + 2, 5) = Mid(Cells(r, 4).Text, 2, 1)
Cells(r + 2, 6) = Right(Cells(r, 4).Text, 1)
修正しても
Cells(r + 2, 4) = Cells(r, 4) \ 100
Cells(r + 2, 5) = Cells(r, 4) \ 10 Mod 10 ← 実行時エラー1004
Cells(r + 2, 6) = Cells(r, 4) Mod 10
117デフォルトの名無しさん (エムゾネ FFea-DLda)
2021/06/04(金) 12:49:56.32ID:UUHTR6cxF >>115-116
そのうちまた動くようになるさ
そのうちまた動くようになるさ
118デフォルトの名無しさん (ワッチョイ a149-oUQE)
2021/06/04(金) 12:50:19.85ID:4IT3M2Hh0 シートを保護したまま動かす前提で、何か色々修正したときに
E7のロックをうっかりONにしてしまったとか。
E7のロックをうっかりONにしてしまったとか。
119デフォルトの名無しさん (ワッチョイ 6ddb-9b/0)
2021/06/04(金) 13:06:45.09ID:tGFTJ4F20 >>118
ありがとうございます。
どうやらそれらしいです。
頑張ってみます。
ありがとうございます。
どうやらそれらしいです。
頑張ってみます。
120デフォルトの名無しさん (スップ Sdea-PlKh)
2021/06/04(金) 16:43:12.67ID:0sw3CVWxd >>115
Private Sub Worksheet_Change(ByVal Target As Range)
Dim n, n1, n2, n3 As Integer
If Target.AddressLocal = "$D$4" Then
If IsNumeric(Target.Value) Then
n = Target.Value
n1 = n \ 100
n2 = n \ 10 Mod 10
n3 = n Mod 10
Me.Range("D7").Value = n1
Me.Range("E7").Value = n2
Me.Range("F7").Value = n3
End If
End If
End Sub
もう見てないかもしれないけど、どうぞ。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim n, n1, n2, n3 As Integer
If Target.AddressLocal = "$D$4" Then
If IsNumeric(Target.Value) Then
n = Target.Value
n1 = n \ 100
n2 = n \ 10 Mod 10
n3 = n Mod 10
Me.Range("D7").Value = n1
Me.Range("E7").Value = n2
Me.Range("F7").Value = n3
End If
End If
End Sub
もう見てないかもしれないけど、どうぞ。
121デフォルトの名無しさん (ワッチョイ 8578-wkOw)
2021/06/04(金) 17:55:39.07ID:Ca/vMZLe0 それだとn3 だけがintegerになるんじゃね
122デフォルトの名無しさん (ワッチョイ 2d3d-d+P4)
2021/06/04(金) 18:05:42.24ID:Bit4dpt50 >>120
n3以外Variantでいいの?
n3以外Variantでいいの?
123デフォルトの名無しさん (テテンテンテン MMde-0Hzh)
2021/06/05(土) 09:03:08.07ID:rlNy9EJ3M 基本が出来てない典型
124デフォルトの名無しさん (ササクッテロラ Sped-q291)
2021/06/05(土) 09:19:02.29ID:6nlrivgRp 基本が出来ていなくても何となく動いてしまう
それがVBA
それがVBA
125デフォルトの名無しさん (ワッチョイ ca01-U9S2)
2021/06/05(土) 10:37:53.55ID:qQr0HMbe0 あの書き方でよしとするネット情報が多くておれも最初間違えてたわ
126デフォルトの名無しさん (ワッチョイ 4abd-lji7)
2021/06/05(土) 11:01:57.88ID:w++2yo+P0 VBAで、QueryTableを使ってUTF-8のCSVを読み込ませてるんですが、
この読み込みのマクロを使った後に、そのxlsmファイルを開いたままの状態で、何か別のCSVファイルを手動で開くと
中の2バイト文字がグチャグチャに文字化けされてしまいます
xlsmを閉じてからだと何の問題もないんですが、作業してるとちょっと不便なんですが原因は何なのでしょうか?
この読み込みのマクロを使った後に、そのxlsmファイルを開いたままの状態で、何か別のCSVファイルを手動で開くと
中の2バイト文字がグチャグチャに文字化けされてしまいます
xlsmを閉じてからだと何の問題もないんですが、作業してるとちょっと不便なんですが原因は何なのでしょうか?
127デフォルトの名無しさん (ワッチョイ 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 変な場所って、プロシージャの真ん中あたりに宣言がポッと出てくるやつか?
いちいち上に戻って書き足すのがクソダルい気持ちは分かる
いちいち上に戻って書き足すのがクソダルい気持ちは分かる
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 空自機レーダー照射、音声データ公開 中国 ★2 [蚤の市★]
- 中国とロシアの爆撃機、日本周辺で共同飛行 [少考さん★]
- 「中国側も日本機のレーダーを感知していた」 中国メディアが報道 [♪♪♪★]
- 【YouTuber】バイク事故で入院のゆたぼん、振込で「お見舞金」募る [muffin★]
- 堀江貴文、キャッシュレス非対応の店にモヤッ 『PayPay』立ち上げの人物にまさかの直談判「現金決済しかできないんだけど…」 [冬月記者★]
- 高市早苗首相、消費税減税に後ろ向き 足かせはレジシステム? 「責任ある積極財政」期待高いが [蚤の市★]
- 防衛省、中国を完全論破www 「事前通告があったのは海自であって空自ではない」 高市早苗勝利 [175344491]
- 【悲惨】中国軍が自衛隊に「事前通告」し自衛隊も返答した音声が公開されてしまうwwwこれは高市チェックアウトゕ★4 [597533159]
- この前法事いったらお坊さんに「結婚しないの?」ってめっちゃ詰められたんだが
- 【悲報】JA「全然米が売れなくて倉庫を圧迫してる。助けて!」米卸売り業者「安売りしたら赤字になる…助けて!」 [802034645]
- 韓国政府、高市早苗の「竹島領土」発言にブチギレwwwwwwwwwwwwwwww [834922174]
- 元統合幕僚長「演習通告の音声は公開されたが、レーダー照射時のものではない」高市政府「www」 [834922174]
