!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑同じ内容を3行貼り付けること
ExcelのVBAに関する質問スレ
コード書き込みや作成依頼もOK
次スレは>>980が立てること
無理なら細かく安価指定
※前スレ
Excel VBA 質問スレ Part77
https://mevius.2ch.net/test/read.cgi/tech/1658009255/
Excel VBA 質問スレ Part78
https://mevius.2ch.net/test/read.cgi/tech/1667104996/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
Excel VBA 質問スレ Part79(ワッチョイあり)
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ aaa4-I2zm)
2023/01/28(土) 12:12:12.41ID:UjlIZ1Ov066デフォルトの名無しさん (ワッチョイ 4f01-Rev0)
2023/02/04(土) 22:07:02.46ID:sIc7L3oe067デフォルトの名無しさん (ワッチョイ 0fda-kmO4)
2023/02/05(日) 06:12:14.98ID:zxOMW0wY0 >>65
解決の糸口が見つかってよかったです。
シートに貼り付けるのは一見かっこ悪く見えるかもしれませんが、エクセルの場合シート自体が目視できる2次元配列みたいなものなのでデータ用のシートを用意しておくのはデバッグの意味でも有効と思います。
最終的に非表示にしておけばデータを変えて不具合が出たときに参照できますしね。
解決の糸口が見つかってよかったです。
シートに貼り付けるのは一見かっこ悪く見えるかもしれませんが、エクセルの場合シート自体が目視できる2次元配列みたいなものなのでデータ用のシートを用意しておくのはデバッグの意味でも有効と思います。
最終的に非表示にしておけばデータを変えて不具合が出たときに参照できますしね。
68デフォルトの名無しさん (ワッチョイ cf79-p19T)
2023/02/05(日) 17:55:21.75ID:IrR7f/G90 シートに読み込ませてUsedRange.Valueで二次元配列を取得する場合はインデックスが1オリジンになるとこだけ注意
69デフォルトの名無しさん (スップ Sd5f-dHSc)
2023/02/08(水) 13:33:38.06ID:yPPt1d0+d 名前の定義で範囲に名前をつけると数式で使用できますが、
VBAで自作関数を作り、その引数として定義した名前を使用するとエラーとなってしまいます。
一応定義した名前の後に&“”を付けて文字列化すればエラーを回避できるのですが、毎回これを入力するのは煩わしく見栄えも悪いのでできることならなんとかしたいのですが
解決策ありましたらご教示の程お願いいたします。
VBAで自作関数を作り、その引数として定義した名前を使用するとエラーとなってしまいます。
一応定義した名前の後に&“”を付けて文字列化すればエラーを回避できるのですが、毎回これを入力するのは煩わしく見栄えも悪いのでできることならなんとかしたいのですが
解決策ありましたらご教示の程お願いいたします。
70デフォルトの名無しさん (ワッチョイ 0f2f-gpJN)
2023/02/08(水) 14:59:06.65ID:oAUh4t2x0 その関数のシグネチャとエラーメッセージぐらいかけよ
71デフォルトの名無しさん (アウアウウー Sa93-4QSx)
2023/02/08(水) 15:37:35.62ID:FTgAG7p2a 毎回やるならインターフェース関数作ればいいだけ
72デフォルトの名無しさん (スッップ Sd5f-kmO4)
2023/02/08(水) 20:18:25.84ID:GAx9K2n2d >>69
実現したいことがどんなことなのかわからないけど名前定義した範囲をRange型の変数にsetしてRange型のまま引数として渡しちゃいかんの?
実現したいことがどんなことなのかわからないけど名前定義した範囲をRange型の変数にsetしてRange型のまま引数として渡しちゃいかんの?
73デフォルトの名無しさん (スップ Sd5f-dHSc)
2023/02/08(水) 23:15:53.95ID:Gaz3gRVpd 言葉でうまく説明できないので画像で説明させていただきます。
例えば引数の文字列に別の文字列をくっつけて返すだけのシンプルな関数を作ります。
当然引数にセルを指定すれば問題なく使用できます。
https://i.imgur.com/SnSyEby.png
次に、範囲に名前をつけてそれを引数として使用します。
https://i.imgur.com/6mcu5nn.png
するとこのように「#VALUE!」エラーが出ます。
https://i.imgur.com/9NNr0sB.png
ちなみに範囲の名前に&“”をつければ期待通りの結果になります。
https://i.imgur.com/haXX7gC.png
と、SS撮ってて気づきましたが範囲の中から同じ行のセルを選んで渡す必要があるのですね。
VLOOKUPの第一引数なんかで同じことをすると自動的に同じ行だけを渡せるので勘違いしていました。
例えば引数の文字列に別の文字列をくっつけて返すだけのシンプルな関数を作ります。
当然引数にセルを指定すれば問題なく使用できます。
https://i.imgur.com/SnSyEby.png
次に、範囲に名前をつけてそれを引数として使用します。
https://i.imgur.com/6mcu5nn.png
するとこのように「#VALUE!」エラーが出ます。
https://i.imgur.com/9NNr0sB.png
ちなみに範囲の名前に&“”をつければ期待通りの結果になります。
https://i.imgur.com/haXX7gC.png
と、SS撮ってて気づきましたが範囲の中から同じ行のセルを選んで渡す必要があるのですね。
VLOOKUPの第一引数なんかで同じことをすると自動的に同じ行だけを渡せるので勘違いしていました。
74デフォルトの名無しさん (ワッチョイ 0fda-zLlH)
2023/02/09(木) 07:05:59.22ID:bJr31kU+0 >>73
検証してないので的外れかもしれないけどたぶんRangeのデフォルト値の問題かと。
うろ覚えだけどvariant型で渡されているからセル単体を引数で渡すとセル内容の値の型(今回はstring型)を渡すけど
複数セルを渡すとrange型のオブジェクトとして渡されてるんじゃないかな。
なので自身で書かれているようにセルを特定してあげないといけないのだと思う。
検証してないので的外れかもしれないけどたぶんRangeのデフォルト値の問題かと。
うろ覚えだけどvariant型で渡されているからセル単体を引数で渡すとセル内容の値の型(今回はstring型)を渡すけど
複数セルを渡すとrange型のオブジェクトとして渡されてるんじゃないかな。
なので自身で書かれているようにセルを特定してあげないといけないのだと思う。
75デフォルトの名無しさん (ワッチョイ 0f2f-gpJN)
2023/02/09(木) 23:30:18.42ID:TUokDGw7076デフォルトの名無しさん (ワッチョイ fa3d-n4dK)
2023/02/13(月) 03:20:36.33ID:COtuPGR00 Sub test()
a = 0.2
b = 0.4
If a + b = 0.6 Then
Debug.Print "A"
Else
Debug.Print "B"
End If
End Sub
これってAじゃね?
a = 0.2
b = 0.4
If a + b = 0.6 Then
Debug.Print "A"
Else
Debug.Print "B"
End If
End Sub
これってAじゃね?
77デフォルトの名無しさん (スッップ Sdaa-GMxD)
2023/02/13(月) 07:05:23.93ID:HpzJjAlxd78デフォルトの名無しさん (ワッチョイ d301-0qku)
2023/02/13(月) 07:53:01.46ID:/kiwbSJJ0 >>76
きちんと型宣言すればちゃんと計算できる
詳しくは下を見た方が早い
https://excel-ubara.com/excelvba4/EXCEL_VBA_427.html#:~:text=Single%EF%BC%88%E5%8D%98%E7%B2%BE%E5%BA%A6%E6%B5%AE%E5%8B%95%E5%B0%8F%E6%95%B0%E7%82%B9%E6%95%B0%E5%9E%8B%EF%BC%89%E3%81%AF4%E3%83%90%E3%82%A4%E3%83%88,%E7%99%BA%E7%94%9F%E3%81%97%E3%81%A6%E3%81%97%E3%81%BE%E3%81%84%E3%81%BE%E3%81%99%E3%80%82
きちんと型宣言すればちゃんと計算できる
詳しくは下を見た方が早い
https://excel-ubara.com/excelvba4/EXCEL_VBA_427.html#:~:text=Single%EF%BC%88%E5%8D%98%E7%B2%BE%E5%BA%A6%E6%B5%AE%E5%8B%95%E5%B0%8F%E6%95%B0%E7%82%B9%E6%95%B0%E5%9E%8B%EF%BC%89%E3%81%AF4%E3%83%90%E3%82%A4%E3%83%88,%E7%99%BA%E7%94%9F%E3%81%97%E3%81%A6%E3%81%97%E3%81%BE%E3%81%84%E3%81%BE%E3%81%99%E3%80%82
79デフォルトの名無しさん (アウアウウー Sa4f-qaxQ)
2023/02/13(月) 10:13:40.33ID:QGUistpWa >>76
ほんとだよく気付いたね って言ってほしいのか?
ほんとだよく気付いたね って言ってほしいのか?
80デフォルトの名無しさん (ワッチョイ ff35-fTjZ)
2023/02/13(月) 10:18:31.40ID:86tN/4J60 すみません、マクロスレに誘導されてきました。教えてください
【1 OSの種類 .】 Windows**
【2 Excelのバージョン 】 Excel16.0
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
◆やりたいこと
データモデルに値を格納し接続先を作成している
その接続先にあるリストを、検索フォーム、コンボボックスなどのデータソースにしたい
◆補足情報とし調べがついてること
・ピボットテーブルにはビボットテーブル→データモデルからで設定できた
・選択リストもINDIRECT関数で設定できた
・コンボボックスや検索フォームは、RowSourceTypeにテーブルクエリーを設定
・RowSourceプロパティにテーブル名を設定
ここまではわかっていますが、うまく設定ができません
具体的には、下記コードでエラーが出ます
実行時エラー‘13’
型が一致しません
エラーの出たコード
Privets Sub UserForm1 Initialize() {
Me.ComboBox1.RowSourceType = “Table/Query”
Me.ComboBox1.RowSource = “syamei1”
}
上記のコードの書き方、サンプルコードがあれば教えて下さい。よろしくお願いします
【1 OSの種類 .】 Windows**
【2 Excelのバージョン 】 Excel16.0
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
◆やりたいこと
データモデルに値を格納し接続先を作成している
その接続先にあるリストを、検索フォーム、コンボボックスなどのデータソースにしたい
◆補足情報とし調べがついてること
・ピボットテーブルにはビボットテーブル→データモデルからで設定できた
・選択リストもINDIRECT関数で設定できた
・コンボボックスや検索フォームは、RowSourceTypeにテーブルクエリーを設定
・RowSourceプロパティにテーブル名を設定
ここまではわかっていますが、うまく設定ができません
具体的には、下記コードでエラーが出ます
実行時エラー‘13’
型が一致しません
エラーの出たコード
Privets Sub UserForm1 Initialize() {
Me.ComboBox1.RowSourceType = “Table/Query”
Me.ComboBox1.RowSource = “syamei1”
}
上記のコードの書き方、サンプルコードがあれば教えて下さい。よろしくお願いします
81デフォルトの名無しさん (ワッチョイ ff35-fTjZ)
2023/02/13(月) 10:21:58.10ID:86tN/4J60 連投すみません
コンボボックスじゃなくても構いません
やりたいことは大量のデータをもとに入力用のポップアップウインドウを作りたいです
レコードが合計で100万以上あり、重たくなるのを避けるために、データモデルの概念を知り、それで入力フォームを作ろうとしています
その方法でコンボボックスを見つけましたが、元となるデータソースがデータモデルの接続先から選べるなら、コンボボックスの形式じゃなくても構いません
入力規則で選択リストの値を持ってくることはできましたが、レコード件数が多いので、フォームで出したいと思っています
よろしくお願いします
コンボボックスじゃなくても構いません
やりたいことは大量のデータをもとに入力用のポップアップウインドウを作りたいです
レコードが合計で100万以上あり、重たくなるのを避けるために、データモデルの概念を知り、それで入力フォームを作ろうとしています
その方法でコンボボックスを見つけましたが、元となるデータソースがデータモデルの接続先から選べるなら、コンボボックスの形式じゃなくても構いません
入力規則で選択リストの値を持ってくることはできましたが、レコード件数が多いので、フォームで出したいと思っています
よろしくお願いします
82デフォルトの名無しさん (アウアウウー Sa4f-qaxQ)
2023/02/13(月) 11:40:19.98ID:GyFZ7uvya Privets ?
83デフォルトの名無しさん (ワッチョイ ff35-fTjZ)
2023/02/13(月) 14:18:20.91ID:86tN/4J60 スマホ手打ちなので誤字は勘弁を
84デフォルトの名無しさん (ワッチョイ 0710-hSWQ)
2023/02/13(月) 17:29:24.70ID:pezzuKY30 スマホで5ちゃん見てる人も多くなったのか
85デフォルトの名無しさん (アウアウウー Sa4f-qaxQ)
2023/02/14(火) 11:37:45.99ID:nNkhowbBa 拙者も携帯なので試せないでござるよ
86デフォルトの名無しさん (アウアウウー Sa4f-mhYO)
2023/02/14(火) 13:19:18.08ID:YTnfnco6a 現場で使えるテクニック満載のVBAの本を教えて下さい。
87デフォルトの名無しさん (ワッチョイ 0710-hSWQ)
2023/02/14(火) 22:18:21.54ID:h0+uN4JM0 見てどうする?
現場に活かせるとは限らんぞ
現場に活かせるとは限らんぞ
88デフォルトの名無しさん (ワッチョイ aff9-UHi0)
2023/02/15(水) 09:38:23.37ID:dWAC20qI0 syamei1ってテーブルを指定してるようだけど
ちゃんとテーブルが存在してるの?
RowSourceでクエリやsql指定してみたら?
ちゃんとテーブルが存在してるの?
RowSourceでクエリやsql指定してみたら?
89デフォルトの名無しさん (ワッチョイ deda-D0vN)
2023/02/15(水) 19:02:02.67ID:8XlBz3tg0 >>87
活かせる現場に転職するんじゃね
活かせる現場に転職するんじゃね
90デフォルトの名無しさん (ワッチョイ c619-xn9B)
2023/02/15(水) 19:27:38.40ID:HlAv3bv30 ネットが見れない環境なんかね?
銀行系ではよくある話だけど
銀行系ではよくある話だけど
91デフォルトの名無しさん (ワッチョイ 0710-hSWQ)
2023/02/15(水) 19:39:09.60ID:UoMCmZrt0 絆創膏テクニック的な本はたくさん出ているでしょ
92デフォルトの名無しさん (ワッチョイ deda-D0vN)
2023/02/15(水) 20:32:13.82ID:8XlBz3tg0 銀行でお金の計算を初心者が本見ながらEXCELのVBAで作ってるとか
そんな銀行やばくね
そんな銀行やばくね
93デフォルトの名無しさん (ワッチョイ 0710-hSWQ)
2023/02/16(木) 02:33:56.63ID:v5+0ZrcQ0 ヤバいよそれは。
思い出したけど、どこかの銀行がATMの不具合出した事故を思い出したわ。
それと同じようなトラブルになるのでは?
思い出したけど、どこかの銀行がATMの不具合出した事故を思い出したわ。
それと同じようなトラブルになるのでは?
94デフォルトの名無しさん (ワッチョイ a705-0qku)
2023/02/16(木) 14:14:15.80ID:TeVuhO500 Excel 365なんだが
ActiveXのコンボボックスをシートに配置すると
ブックを閉じるときにコンボボックスのChangeイベントが発生して
Changeイベントのコードが実行されるんだが、なんで閉じるときに発生するん?
バグじゃねーの?
ActiveXのコンボボックスをシートに配置すると
ブックを閉じるときにコンボボックスのChangeイベントが発生して
Changeイベントのコードが実行されるんだが、なんで閉じるときに発生するん?
バグじゃねーの?
95デフォルトの名無しさん (スププ Sdaa-GKAg)
2023/02/16(木) 17:40:38.79ID:ImcZX1+Nd アクティブXコントロールでボタン作ると、ボタン押した時にボタン内の文字が左に寄るのですが、これは治せるのでしょうか?
96デフォルトの名無しさん (ワッチョイ 07da-8lmq)
2023/02/16(木) 17:44:23.49ID:IvN11mYG0 ActiveXオブジェクトは、自分(Application)のオブジェクトに見えても、実は外部のオブジェクトです
Application イベントの扱いで記述不足や漏れが無いか、プロパティの見直しなどしてみるかコードを貼ってみるなり
Application イベントの扱いで記述不足や漏れが無いか、プロパティの見直しなどしてみるかコードを貼ってみるなり
97デフォルトの名無しさん (ワッチョイ 0710-hSWQ)
2023/02/16(木) 20:35:33.62ID:v5+0ZrcQ0 ActiveXってExcelで使わない方が良いみたいな記事(日経PC)で見た記憶ある
98デフォルトの名無しさん (ワッチョイ a705-0qku)
2023/02/17(金) 07:12:43.98ID:WORa0xXL0 ActiveXはExcelシートで使うもんじゃないってのは今でも定石!
99デフォルトの名無しさん (スププ Sdaa-GKAg)
2023/02/17(金) 10:04:33.80ID:o2LVTB4Vd https://answers.microsoft.com/ja-jp/msoffice/forum/all/office-2016-の-activex/81aa0b17-2f60-49c3-83f7-02c164969f7c
Excel2016のバグなんですね
Excel2016のバグなんですね
100デフォルトの名無しさん (スププ Sdaa-GKAg)
2023/02/17(金) 10:05:10.85ID:o2LVTB4Vd https://answers.microsoft.com/ja-jp/msoffice/forum/all/office-2016-の-activex/81aa0b17-2f60-49c3-83f7-02c164969f7c
101デフォルトの名無しさん (ワッチョイ 07da-8lmq)
2023/02/17(金) 10:15:37.69ID:znCeXLfL0 そんな古いVer使い続けるなよ スタンドアロンで一台こっきりならまだしも
102デフォルトの名無しさん (ワッチョイ 4600-XLfl)
2023/02/17(金) 15:42:35.67ID:WFsPqw+S0 検索で例えば「あ」という文字をすべて探し出して
その一文字前を選択したいんですがどうすればいいですか?
Selection.Find
.Text = "あ"
Selection.Words.First.Previous.Select
としてみましたがうまく行きませんでした
カーソルのある前の文字が選択されます
その一文字前を選択したいんですがどうすればいいですか?
Selection.Find
.Text = "あ"
Selection.Words.First.Previous.Select
としてみましたがうまく行きませんでした
カーソルのある前の文字が選択されます
103デフォルトの名無しさん (スップ Sd4a-2YIw)
2023/02/17(金) 16:30:19.83ID:KwkbTkoud >>102
複数の選択ができると思ってんのか?
複数の選択ができると思ってんのか?
104デフォルトの名無しさん (ワッチョイ 4600-XLfl)
2023/02/17(金) 17:31:12.72ID:WFsPqw+S0105デフォルトの名無しさん (ワッチョイ 8749-D0vN)
2023/02/17(金) 20:35:48.06ID:clT0gqvf0106デフォルトの名無しさん (ワッチョイ 4600-XLfl)
2023/02/17(金) 20:59:53.94ID:WFsPqw+S0 >>105
ありがとうございます
けど"あ"が複数あるセルも多いので…複数回走査したらループ終わらなくなりますし
"あ"は目印として入れてあるだけで最後にまとめて消すつもりだったんですが
一回フォント変更の処理したらそこの"あ"を消してもう一度検索がいいんでしょうか…
ありがとうございます
けど"あ"が複数あるセルも多いので…複数回走査したらループ終わらなくなりますし
"あ"は目印として入れてあるだけで最後にまとめて消すつもりだったんですが
一回フォント変更の処理したらそこの"あ"を消してもう一度検索がいいんでしょうか…
107デフォルトの名無しさん (スプッッ Sd4a-GMxD)
2023/02/17(金) 22:23:30.64ID:v2XGnFXnd >>106
Mid( Range.value, x)で
セル内のx文字目から後ろを切り出せる
Instr( Mid( Range.value, x), z)で
セル内のx文字目から切り出した中で文字列zが何文字目にくるのか知ることができる
Range.characters(x, y).Fontで
セル内のx文字目からy文字分みたいな一部指定でのフォント変更が出来る
これらのxやyをForで変更しながら処理すればいけると思う
Mid( Range.value, x)で
セル内のx文字目から後ろを切り出せる
Instr( Mid( Range.value, x), z)で
セル内のx文字目から切り出した中で文字列zが何文字目にくるのか知ることができる
Range.characters(x, y).Fontで
セル内のx文字目からy文字分みたいな一部指定でのフォント変更が出来る
これらのxやyをForで変更しながら処理すればいけると思う
108デフォルトの名無しさん (ワッチョイ 4600-XLfl)
2023/02/17(金) 22:57:47.99ID:WFsPqw+S0109デフォルトの名無しさん (ワッチョイ fd49-BTrK)
2023/02/18(土) 11:21:39.71ID:wyxXLbRL0 >>108
コードを書いてみた。
所定のフォントを変えた後、最後にまとめて「あ」を空白に置換させている。
Sub findあ()
Dim foundcell As Range, firstcell As Range, target As Range, Num As Long, flag As Boolean
Set foundcell = Cells.find(What:="あ")
If foundcell Is Nothing Then Exit Sub
Set firstcell = foundcell:Set target = foundcell
Do
Num = InStr(foundcell, "あ")
If Num > 1 Then
flag = False
Do
If flag = False Then Num = 0
Num = InStr(Num + 1, foundcell, "あ")
If Num = 0 Then Exit Do
foundcell.Characters(Start:=Num - 1, Length:=1).Font.Name = "BIZ UDゴシック":flag = True
Loop
End If
Set target = Union(target, foundcell)
Set foundcell = Cells.FindNext(foundcell)
Loop Until foundcell.Address = firstcell.Address
target.Replace What:="あ", Replacement:=""
End Sub
コードを書いてみた。
所定のフォントを変えた後、最後にまとめて「あ」を空白に置換させている。
Sub findあ()
Dim foundcell As Range, firstcell As Range, target As Range, Num As Long, flag As Boolean
Set foundcell = Cells.find(What:="あ")
If foundcell Is Nothing Then Exit Sub
Set firstcell = foundcell:Set target = foundcell
Do
Num = InStr(foundcell, "あ")
If Num > 1 Then
flag = False
Do
If flag = False Then Num = 0
Num = InStr(Num + 1, foundcell, "あ")
If Num = 0 Then Exit Do
foundcell.Characters(Start:=Num - 1, Length:=1).Font.Name = "BIZ UDゴシック":flag = True
Loop
End If
Set target = Union(target, foundcell)
Set foundcell = Cells.FindNext(foundcell)
Loop Until foundcell.Address = firstcell.Address
target.Replace What:="あ", Replacement:=""
End Sub
110109 (ワッチョイ fd49-H4qV)
2023/02/18(土) 11:39:38.68ID:wyxXLbRL0 途中で書き込んでしまったので
もし使うならインデント調整して下さい
もし使うならインデント調整して下さい
111デフォルトの名無しさん (オイコラミネオ MM91-Acf1)
2023/02/18(土) 18:22:51.48ID:oiEmQBhiM112デフォルトの名無しさん (ワッチョイ 2302-3nnD)
2023/02/19(日) 13:44:33.87ID:E1njzG6f0 次のようにA列にid番号、B列に削除されるid番号あります。
A,B
1,3
2,5
3,7
4,
5,
6,
7,
8,
9,
C列にAからBの番号を除外したものが残ります。
C,
1
2
4
8
9
これを実現するのに、みなさんならセル関数を使いますか?VBAを使いますか?
A,B
1,3
2,5
3,7
4,
5,
6,
7,
8,
9,
C列にAからBの番号を除外したものが残ります。
C,
1
2
4
8
9
これを実現するのに、みなさんならセル関数を使いますか?VBAを使いますか?
113デフォルトの名無しさん (ワッチョイ 9b8c-DN/W)
2023/02/19(日) 14:09:46.37ID:fQjaN3Vg0 バージョンは
114デフォルトの名無しさん (ワッチョイ 2302-3nnD)
2023/02/19(日) 14:50:51.24ID:E1njzG6f0 ver2019です。
115デフォルトの名無しさん (ワッチョイ 2342-rjXQ)
2023/02/19(日) 15:46:46.73ID:IrwBul5G0 手動も含めて一番都合がいいのを使う
116デフォルトの名無しさん (ワッチョイ 2302-3nnD)
2023/02/19(日) 16:33:34.29ID:E1njzG6f0 ありがとうございます。慣れないですがVBAで行うことにしました。
117デフォルトの名無しさん (ワッチョイ 2302-3nnD)
2023/02/19(日) 16:36:15.42ID:E1njzG6f0 以下の実行が通りません。
If init_id(i) = del_id(j) Then
の個所でインデックスの範囲外というエラーがでました。
配列に対して添字を()しているのが問題でしょうか?
Sub 次の問題()
Dim totalQuestions As Long, pastQuestions As Long, Nextnum As Long, n As Long
Dim init_id() As Variant, del_id() As Variant
totalQuestions = Worksheets("Play").Cells(Rows.Count, 1).End(xlUp).Row - 1
Randomize
Nextnum = Int(totalQuestions * Rnd + 1)
n = Worksheets("arrData").Cells(Rows.Count, "B").End(xlUp).Row + 1
Worksheets("arrData").Cells(n, "B") = Nextnum
init_id = Worksheets("Play").Range(Worksheets("Play").Cells(2, 1), Worksheets("Play").Cells(totalQuestions + 1, 1)).Value
pastQuestions = Worksheets("arrData").Cells(Rows.Count, 2).End(xlUp).Row - 1
del_id = Worksheets("arrData").Range(Worksheets("arrData").Cells(2, 2), Worksheets("arrData").Cells(pastQuestions + 1, 2)).Value
Dim i As Integer, j As Integer
For i = 1 To totalQuestions
For j = 1 To pastQuestions
If init_id(i) = del_id(j) Then
Debug.Print init_id(i).Value
End If
Next j
Next i
End Sub
If init_id(i) = del_id(j) Then
の個所でインデックスの範囲外というエラーがでました。
配列に対して添字を()しているのが問題でしょうか?
Sub 次の問題()
Dim totalQuestions As Long, pastQuestions As Long, Nextnum As Long, n As Long
Dim init_id() As Variant, del_id() As Variant
totalQuestions = Worksheets("Play").Cells(Rows.Count, 1).End(xlUp).Row - 1
Randomize
Nextnum = Int(totalQuestions * Rnd + 1)
n = Worksheets("arrData").Cells(Rows.Count, "B").End(xlUp).Row + 1
Worksheets("arrData").Cells(n, "B") = Nextnum
init_id = Worksheets("Play").Range(Worksheets("Play").Cells(2, 1), Worksheets("Play").Cells(totalQuestions + 1, 1)).Value
pastQuestions = Worksheets("arrData").Cells(Rows.Count, 2).End(xlUp).Row - 1
del_id = Worksheets("arrData").Range(Worksheets("arrData").Cells(2, 2), Worksheets("arrData").Cells(pastQuestions + 1, 2)).Value
Dim i As Integer, j As Integer
For i = 1 To totalQuestions
For j = 1 To pastQuestions
If init_id(i) = del_id(j) Then
Debug.Print init_id(i).Value
End If
Next j
Next i
End Sub
118デフォルトの名無しさん (ワッチョイ 2302-3nnD)
2023/02/19(日) 16:40:27.54ID:E1njzG6f0 念のため、chatGTPはあてにならなかったです。
119デフォルトの名無しさん (ワッチョイ 4bda-BTrK)
2023/02/19(日) 17:24:19.98ID:ZehIwlnC0 >>117
Integerだからだろ
Integerだからだろ
120デフォルトの名無しさん (ワッチョイ 2302-3nnD)
2023/02/19(日) 17:30:57.52ID:E1njzG6f0 ありがとうございます。Longにしてもダメでした。
根本的に配列の扱いが間違っているような感じですが、
それがよくわかりません。
根本的に配列の扱いが間違っているような感じですが、
それがよくわかりません。
121デフォルトの名無しさん (ワッチョイ 1501-rVJW)
2023/02/19(日) 17:39:18.41ID:j3UrUaev0 >>120
init_id = Worksheets("Play").Range(Worksheets("Play").Cells(2, 1), Worksheets("Play").Cells(totalQuestions + 1, 1)).Value
と
del_id = Worksheets("arrData").Range(Worksheets("arrData").Cells(2, 2), Worksheets("arrData").Cells(pastQuestions + 1, 2)).Value
でinit_idとdel_idにセルの値を配列として代入しているけど、これは2次元配列として代入している
だからinit_id(i)という一次元配列は存在しない
init_id(1,1)とかinit_id(2,1)の二次元配列として存在している
よってinit_id(i)は存在しませんってエラーが出てる
ローカルウインドで確認するといい
init_id = Worksheets("Play").Range(Worksheets("Play").Cells(2, 1), Worksheets("Play").Cells(totalQuestions + 1, 1)).Value
と
del_id = Worksheets("arrData").Range(Worksheets("arrData").Cells(2, 2), Worksheets("arrData").Cells(pastQuestions + 1, 2)).Value
でinit_idとdel_idにセルの値を配列として代入しているけど、これは2次元配列として代入している
だからinit_id(i)という一次元配列は存在しない
init_id(1,1)とかinit_id(2,1)の二次元配列として存在している
よってinit_id(i)は存在しませんってエラーが出てる
ローカルウインドで確認するといい
122デフォルトの名無しさん (ワッチョイ 2302-3nnD)
2023/02/19(日) 17:44:28.85ID:E1njzG6f0 ありがとうございました。よくわかりました。
なんとか1次元の配列を作りたいと思います。
セルデータから簡単に配列つくれるということでこの作り方になったのですが。
列番号を1つにすれば1次になるかと浅はかでした。。
なんとか1次元の配列を作りたいと思います。
セルデータから簡単に配列つくれるということでこの作り方になったのですが。
列番号を1つにすれば1次になるかと浅はかでした。。
123デフォルトの名無しさん (スププ Sd43-mfId)
2023/02/19(日) 18:07:25.25ID:xzOvW7kvd 配列よりDictionaryの存在チェックで判定する方が簡単そうだけどなぁ
124デフォルトの名無しさん (ワッチョイ fd49-BTrK)
2023/02/19(日) 18:17:57.66ID:FtkTxk830 >>112
VBAならこんな感じか。
後、C列に6がないのは記入漏れ?
Sub C列に書く()
Dim i As Long, cnt As Long, dRange As Range
Set dRange = Range("B1:B3")
cnt = 1
For i = 1 To 9
If WorksheetFunction.CountIf(dRange, Cells(i, 1)) = 0 Then
Cells(cnt, 3) = Cells(i, 1)
cnt = cnt + 1
End If
Next i
End Sub
VBAならこんな感じか。
後、C列に6がないのは記入漏れ?
Sub C列に書く()
Dim i As Long, cnt As Long, dRange As Range
Set dRange = Range("B1:B3")
cnt = 1
For i = 1 To 9
If WorksheetFunction.CountIf(dRange, Cells(i, 1)) = 0 Then
Cells(cnt, 3) = Cells(i, 1)
cnt = cnt + 1
End If
Next i
End Sub
125デフォルトの名無しさん (ワッチョイ 2302-3nnD)
2023/02/19(日) 18:24:49.89ID:E1njzG6f0 >>124
ありがとうございます。やろうとしていたコードよりシンプルです。
ありがとうございます。やろうとしていたコードよりシンプルです。
126デフォルトの名無しさん (ワッチョイ 2302-3nnD)
2023/02/19(日) 18:28:42.83ID:E1njzG6f0 >>124でおしえていただいた方法で進めたいのですが。
これで、エラーがでたのはなぜでしょう?
Sub 次の問題()
Dim totalQuestions As Long, pastQuestions As Long, Nextnum As Long, n As Long
Dim init_id() As Variant, del_id() As Variant
totalQuestions = Worksheets("Play").Cells(Rows.Count, 1).End(xlUp).Row - 1
Randomize
Nextnum = Int(totalQuestions * Rnd + 1)
n = Worksheets("arrData").Cells(Rows.Count, "B").End(xlUp).Row + 1
Worksheets("arrData").Cells(n, "B") = Nextnum
pastQuestions = Worksheets("arrData").Cells(Rows.Count, 2).End(xlUp).Row - 1
Dim i As Integer
For i = 1 To totalQuestions
init_id(i) = Worksheets("Play").Cells(i+1, 1)
Next i
For i = 1 To pastQuestions
del_id(i) = Worksheets("Play").Cells(i+1, 1)
Next i
End Sub
これで、エラーがでたのはなぜでしょう?
Sub 次の問題()
Dim totalQuestions As Long, pastQuestions As Long, Nextnum As Long, n As Long
Dim init_id() As Variant, del_id() As Variant
totalQuestions = Worksheets("Play").Cells(Rows.Count, 1).End(xlUp).Row - 1
Randomize
Nextnum = Int(totalQuestions * Rnd + 1)
n = Worksheets("arrData").Cells(Rows.Count, "B").End(xlUp).Row + 1
Worksheets("arrData").Cells(n, "B") = Nextnum
pastQuestions = Worksheets("arrData").Cells(Rows.Count, 2).End(xlUp).Row - 1
Dim i As Integer
For i = 1 To totalQuestions
init_id(i) = Worksheets("Play").Cells(i+1, 1)
Next i
For i = 1 To pastQuestions
del_id(i) = Worksheets("Play").Cells(i+1, 1)
Next i
End Sub
127デフォルトの名無しさん (スップ Sd03-O7MM)
2023/02/19(日) 20:06:54.10ID:owAZbnPUd 春休みか?
128デフォルトの名無しさん (ワッチョイ 1501-UZZT)
2023/02/19(日) 20:22:10.83ID:j3UrUaev0 これ流石に釣りだろ
いつものキチガイ臭がすごいわ
いつものキチガイ臭がすごいわ
129デフォルトの名無しさん (ワッチョイ fd10-GGTC)
2023/02/20(月) 01:12:29.14ID:CLcJ/prP0 また荒らしか。
130デフォルトの名無しさん (ワッチョイ 615f-djih)
2023/02/25(土) 22:54:00.85ID:IaGdb0E30 VBA初心者です
退職済みの前任者が作ったマクロで多発してるエラー対応をしています
Dim 範囲 As Range
Set 範囲 = Worksheets(″Sheet1″).Range(″A1″).CurrentRegion
・変数に日本語を使うメリットとデメリット
・Range型の変数を使うメリットとデメリット
教えてもらえないでしょうか?
退職済みの前任者が作ったマクロで多発してるエラー対応をしています
Dim 範囲 As Range
Set 範囲 = Worksheets(″Sheet1″).Range(″A1″).CurrentRegion
・変数に日本語を使うメリットとデメリット
・Range型の変数を使うメリットとデメリット
教えてもらえないでしょうか?
131デフォルトの名無しさん (スップ Sdda-iutv)
2023/02/25(土) 23:47:26.72ID:tG3tii0/d >>130
お前のレベルで手を出すな
お前のレベルで手を出すな
132デフォルトの名無しさん (ワッチョイ 5a42-VM1o)
2023/02/25(土) 23:51:02.20ID:apv923pv0 聞いたこともない英単語だとかえってわからなくなるからいっそ日本語の方がいい時がある(語学力の問題)
133デフォルトの名無しさん (ワッチョイ b6da-W5vA)
2023/02/26(日) 00:31:12.73ID:/hhgnOlt0134デフォルトの名無しさん (ワッチョイ 8910-17xD)
2023/02/26(日) 05:08:45.75ID:eudL/KWJ0 昔は確かに日本語変数だと変な挙動起きたがな。
135デフォルトの名無しさん (オッペケ Sr75-WNy4)
2023/02/26(日) 10:08:54.14ID:B6f81u3Mr 日本語のメリット
人によっては視覚的に分かりやすい
デメリット
その度に切り替えボタンを押すのが面倒
後任者が分かりやすいように日本語にしといてくれたんだろう
人によっては視覚的に分かりやすい
デメリット
その度に切り替えボタンを押すのが面倒
後任者が分かりやすいように日本語にしといてくれたんだろう
136デフォルトの名無しさん (ワッチョイ b6da-aucd)
2023/02/26(日) 10:54:07.84ID:/hhgnOlt0 値1 と 値1 が混ざって変数宣言を省略してるとか
漢字の間違いや全角の空白が紛れてたこともあったな昔のことだが
漢字の間違いや全角の空白が紛れてたこともあったな昔のことだが
137デフォルトの名無しさん (ワッチョイ 76da-W5vA)
2023/02/26(日) 12:24:12.13ID:nvWXChWd0 ついこの間、ExcelのupdateでまたVBAが壊れたので
変数はもちろん、ワークシートから引っ張ってくるシート名や定義名も
日本語は止めた。
変数はもちろん、ワークシートから引っ張ってくるシート名や定義名も
日本語は止めた。
138デフォルトの名無しさん (ワッチョイ 9d5f-kDor)
2023/02/26(日) 12:27:06.36ID:pTLOSYzf0 Excelって非アクティブからクリックでアクティブにするとき、クリックしたセルが一発でアクティブにならんのな
前回操作時のセルがアクティブなる
デュアルモニターでマウス行ったり来たりしてExcel入力してるから面倒くさいったりゃありゃしない
スプレッドシートは問題ないんだけどさ
スレチだったらすまん
前回操作時のセルがアクティブなる
デュアルモニターでマウス行ったり来たりしてExcel入力してるから面倒くさいったりゃありゃしない
スプレッドシートは問題ないんだけどさ
スレチだったらすまん
139デフォルトの名無しさん (ワッチョイ ee8c-trCw)
2023/02/26(日) 13:44:06.75ID:2K5zmO2D0 非アクティブのウィンドウにマウスをもっていったら自動的にアクティブになる
無料のユーティリティソフトを入れたらいいんじゃね
無料のユーティリティソフトを入れたらいいんじゃね
140デフォルトの名無しさん (ワッチョイ 9d5f-kDor)
2023/02/26(日) 14:26:11.23ID:pTLOSYzf0141デフォルトの名無しさん (ワッチョイ da79-Arif)
2023/02/26(日) 20:33:51.43ID:gahU4Yv80 効率を語るならまずマウス操作を止めるべきだな
142デフォルトの名無しさん (オッペケ Sr75-WNy4)
2023/02/26(日) 21:30:42.93ID:IOZzQyLPr 流石にエクセルのセルをクリックで操作は意味不明だろ
そこに文句言うヤツとか誰も想定してないと思うわ
そこに文句言うヤツとか誰も想定してないと思うわ
143デフォルトの名無しさん (ワッチョイ 9d5f-kDor)
2023/02/26(日) 21:41:09.74ID:pTLOSYzf0 いや、デュアルモニターの隣りの画面でFXのチャートの値幅をマウス操作で計測し、その値を隣の画面のExcelに打ち込んでデータ分析してるんだが……
一回入力するたびに隣の画面にポインタ移動するから、そのたびExcelが非アクティブになるんだよ
なんか俺めんどくさいことしてるのかな……?
まあ、これ以上はスレチになるからここで終わりにしておく
すまんかった
一回入力するたびに隣の画面にポインタ移動するから、そのたびExcelが非アクティブになるんだよ
なんか俺めんどくさいことしてるのかな……?
まあ、これ以上はスレチになるからここで終わりにしておく
すまんかった
144デフォルトの名無しさん (ワッチョイ 5a02-ZYAP)
2023/02/26(日) 22:07:07.64ID:6/0OFtJ50 これじゃダメかい?
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Sh.Selection.Active
End Sub
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Sh.Selection.Active
End Sub
145デフォルトの名無しさん (ワッチョイ 9d5f-kDor)
2023/02/26(日) 23:34:16.33ID:pTLOSYzf0146デフォルトの名無しさん (オッペケ Sr75-WNy4)
2023/02/27(月) 01:12:31.98ID:ykCEF1qar ん?よくわからんけど、vba起動したら別のソフトがアクティブになるってこと?
別のソフトをアクティブにする前にに次に使いたいセルをSelectかActivateにしとけばいいんでない?
そもそもセルに手打ちってのもよくわからんけど
別のソフトをアクティブにする前にに次に使いたいセルをSelectかActivateにしとけばいいんでない?
そもそもセルに手打ちってのもよくわからんけど
147デフォルトの名無しさん (ワッチョイ b12f-1yY1)
2023/02/27(月) 20:02:31.12ID:Akgqa2X30 >>138
エクセルのアクティブ化とアクティブセルの変更を1クリックでやりたいって話だろ
デュアルモニターとか関係ない
Activate系のイベントでマウスカーソルの位置拾ってセル位置判定してアクティブ化するマクロを書けばできる気はする
マウスカーソルの位置ひらうのがVBAだけで出来なかった気がするから面倒だな
エクセルのアクティブ化とアクティブセルの変更を1クリックでやりたいって話だろ
デュアルモニターとか関係ない
Activate系のイベントでマウスカーソルの位置拾ってセル位置判定してアクティブ化するマクロを書けばできる気はする
マウスカーソルの位置ひらうのがVBAだけで出来なかった気がするから面倒だな
148デフォルトの名無しさん (スプッッ Sdfa-XBvd)
2023/02/27(月) 23:06:45.60ID:oBF60fgLd そもそもFX側のプログラムから
記録用CSVなりに追記する形で出力にすればいいのでは
目的と手段を混同しているように見える
記録用CSVなりに追記する形で出力にすればいいのでは
目的と手段を混同しているように見える
149デフォルトの名無しさん (ワッチョイ 9d5f-051A)
2023/02/28(火) 10:02:05.35ID:7Eonwnxx0 FX側はきっと既成のソフトウェアで手を入れられられず出力機能もないのだろう。
でなければマウスで幅を計測なんて、Excel抜きでも面倒な事をしてないと思う。
FX側ソフトウェアに要望を出す、別のものに変更する、または特注するのは有りだと思う。
でなければマウスで幅を計測なんて、Excel抜きでも面倒な事をしてないと思う。
FX側ソフトウェアに要望を出す、別のものに変更する、または特注するのは有りだと思う。
150デフォルトの名無しさん (オッペケ Sr75-Dmqe)
2023/02/28(火) 12:23:19.77ID:nICQ8lOdr B行に日付 C行以降は各項目
2023/4/3 パン 150
2023/4/16 米 500
2023/5/20 サラダ 230
︙
2023/8/13 牛乳 150
などと表があるとこから、VBAでinputboxで何月を取り出したいですか?など質問をして、その月だけを別シートに抽出したいのですが…findを使う?
どうすればいいのか教えて頂きたいです。
2023/4/3 パン 150
2023/4/16 米 500
2023/5/20 サラダ 230
︙
2023/8/13 牛乳 150
などと表があるとこから、VBAでinputboxで何月を取り出したいですか?など質問をして、その月だけを別シートに抽出したいのですが…findを使う?
どうすればいいのか教えて頂きたいです。
151デフォルトの名無しさん (スプッッ Sdda-XBvd)
2023/02/28(火) 12:42:03.99ID:O8AX5fZ9d152デフォルトの名無しさん (オッペケ Sr75-WNy4)
2023/02/28(火) 15:14:30.22ID:kIDllaukr
VBAでやるよりピボットテーブルの方が・・・
154150 (オッペケ Sr75-Dmqe)
2023/02/28(火) 15:57:37.64ID:nICQ8lOdr AutoFilterやCurrentRegion.copyで何とかなりました。
すみませんでした。
すみませんでした。
155デフォルトの名無しさん (スプッッ Sdda-XBvd)
2023/02/28(火) 17:32:55.16ID:O8AX5fZ9d もしかして:For
まあ他人と共用するマクロなんだろうし
その他人の中にマクロのことを聞けるやつもいないんだろうから
手作業をマクロで書いただけみたいなので正解かもしれんな
まあ他人と共用するマクロなんだろうし
その他人の中にマクロのことを聞けるやつもいないんだろうから
手作業をマクロで書いただけみたいなので正解かもしれんな
156デフォルトの名無しさん (ワッチョイ b6da-W5vA)
2023/03/02(木) 03:38:03.48ID:wSjrNglr0 他人と共用するマクロは、共用している他人がマクロを編集できるので
自分がどう作っても他人が勝手に修正するだろうし・・・
自分がどう作っても他人が勝手に修正するだろうし・・・
157デフォルトの名無しさん (ワッチョイ 8910-17xD)
2023/03/02(木) 06:52:29.36ID:J6gUWTNI0158デフォルトの名無しさん (ワッチョイ b6da-W5vA)
2023/03/02(木) 14:19:36.36ID:wSjrNglr0 マクロを作った人間の責任とサーバー上のファイルを管理している管理者
業務としてマクロを使う作業を指示している上司に変更内容を確認してもらう必要があるよね
業務としてマクロを使う作業を指示している上司に変更内容を確認してもらう必要があるよね
159デフォルトの名無しさん (スプッッ Sd73-Qp8N)
2023/03/04(土) 13:39:41.40ID:hC7IXlBmd160デフォルトの名無しさん (ワッチョイ 7b66-QeO8)
2023/03/05(日) 14:08:33.99ID:SCRVkcxh0 Public Sub aiueo()
Dim Ary(2) As Variant
Ary(0) = 10
Ary(1) = "文字列"
Ary(2) = CDate("2021/2/2")
Dim test As Variant
test = Ary
Call aiueo2(test)
Call aiueo3(Ary())
End Sub
Public Sub aiueo2(ByRef Ary As Variant)
MsgBox TypeName(Ary)
End Sub
Public Sub aiueo3(ByRef Ary() As Variant)
MsgBox TypeName(Ary())
End Sub
関数への配列をどう渡すかで悩んでいます。
配列として渡すのか、Variant型のスカラー変数にして渡すのか。
VBAのVariant変数は配列さえも入るスカラー変数だと認識しています。
なので、配列そのものを入れてるだけで、Variant型の配列変数とは少し違うと思っていました。
しかし上記の結果は同じでした。そうなってくると
どっちでもいいということなのでしょうか?
もう一つ気付いたのはaiueo3はByVal渡しが出来ないけど、aiueo2ではByVal渡しが出来るので、
大元の配列の中身をいじらないで済むという違いがわかりました。
他に違いはありますか?
Dim Ary(2) As Variant
Ary(0) = 10
Ary(1) = "文字列"
Ary(2) = CDate("2021/2/2")
Dim test As Variant
test = Ary
Call aiueo2(test)
Call aiueo3(Ary())
End Sub
Public Sub aiueo2(ByRef Ary As Variant)
MsgBox TypeName(Ary)
End Sub
Public Sub aiueo3(ByRef Ary() As Variant)
MsgBox TypeName(Ary())
End Sub
関数への配列をどう渡すかで悩んでいます。
配列として渡すのか、Variant型のスカラー変数にして渡すのか。
VBAのVariant変数は配列さえも入るスカラー変数だと認識しています。
なので、配列そのものを入れてるだけで、Variant型の配列変数とは少し違うと思っていました。
しかし上記の結果は同じでした。そうなってくると
どっちでもいいということなのでしょうか?
もう一つ気付いたのはaiueo3はByVal渡しが出来ないけど、aiueo2ではByVal渡しが出来るので、
大元の配列の中身をいじらないで済むという違いがわかりました。
他に違いはありますか?
161デフォルトの名無しさん (ワッチョイ 1379-rvSK)
2023/03/05(日) 15:00:07.80ID:RB9OOifa0 >>160
Variantの配列は結局Variantだから下のように配列指定の括弧を取って関数宣言すれば値渡しもできるよ
Public Sub aiueo3(ByVal Ary As Variant)
関数引数の宣言で配列を受けるように書いてしまうと参照渡ししかできなくなるってだけ
Variantの配列は結局Variantだから下のように配列指定の括弧を取って関数宣言すれば値渡しもできるよ
Public Sub aiueo3(ByVal Ary As Variant)
関数引数の宣言で配列を受けるように書いてしまうと参照渡ししかできなくなるってだけ
162デフォルトの名無しさん (ワッチョイ 0bda-Qpn1)
2023/03/05(日) 19:01:06.89ID:ePQGVH9T0 >>160
そんなサンプルばっかり作ってないでちゃんと役に立つもの作ればいいのに
そんなサンプルばっかり作ってないでちゃんと役に立つもの作ればいいのに
163160 (ワッチョイ 7b66-QeO8)
2023/03/05(日) 19:19:12.03ID:SCRVkcxh0 >>161
ありがとうごございました。
スカラーで受けるか配列で受けるかにこだわっていました。
あれからもう一つ気付けたのは
Public Sub Sample(Byref Ary() as Class1)
Public Sub Sample(Byref Ary as Class1)
この時に大きな違いが出ました。前者はAry(i).と書くだけでClass1のプロパティメソッド一覧がサジェストしてくれますが、
後者だとVBE的には配列と認識してないのでサジェストしてくれません。
これを決定打として前者の書き方に統一しようと思います。
>>162
8割出来てたソフトをクラスを導入して書き直したら拡張しやすいコードに生まれ変わると信じてトライ中です。
月に数日しか触る時間が取れなくてちっとも進んでないです。
久しぶりに触ると自分が書いたコードさえ複雑すぎて読めないです。
ありがとうごございました。
スカラーで受けるか配列で受けるかにこだわっていました。
あれからもう一つ気付けたのは
Public Sub Sample(Byref Ary() as Class1)
Public Sub Sample(Byref Ary as Class1)
この時に大きな違いが出ました。前者はAry(i).と書くだけでClass1のプロパティメソッド一覧がサジェストしてくれますが、
後者だとVBE的には配列と認識してないのでサジェストしてくれません。
これを決定打として前者の書き方に統一しようと思います。
>>162
8割出来てたソフトをクラスを導入して書き直したら拡張しやすいコードに生まれ変わると信じてトライ中です。
月に数日しか触る時間が取れなくてちっとも進んでないです。
久しぶりに触ると自分が書いたコードさえ複雑すぎて読めないです。
164デフォルトの名無しさん (アウアウウー Sa1d-uRGO)
2023/03/05(日) 22:22:28.42ID:dhvwtz5Oa 長くなれば長くなるほど自分のコードってイミフに見えるよね。特に3ヶ月経てば。
165デフォルトの名無しさん (ワッチョイ 112f-3zFX)
2023/03/06(月) 00:54:11.13ID:ai8Q1Y+e0 なにをしてるかしらんけど、クラスを配列にして関数に渡してる段階で
ちょっと設計見直したほうが良いと思うぞ
ちょっと設計見直したほうが良いと思うぞ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- テレビ朝日 本社から男性が転落し死亡。関連会社社員か 当たった通行人が左肩軽傷 [阿弥陀ヶ峰★]
- テレビ朝日本社から20~30代の関連会社社員とみられる男性が転落し死亡 六本木けやき坂通りの通行人にはけが人なし [少考さん★]
- 高市早苗首相が天理教系企業に“巨額発注” 総額5000万円 本人は「政治団体の活動に必要な支出」と回答 ★2 [Hitzeschleier★]
- 小島瑠璃子さん、代表取締役を務める会社を破産申請 [牛丼★]
- 「残クレ」でマイホーム、国が銀行向け保険 新型住宅ローン普及促す -日経 ★3 [少考さん★]
- 【サッカー】日本代表、FIFAランキング“4位”の強豪イングランドとの対戦が正式決定! 来年3月に聖地ウェンブリーで激突へ [久太郎★]
- 関西住みのニューハーフ、彼氏が欲しくて泣く
- (´・ω・`)クリスマスが今年もやってくる~
- 千晴さん千晴さん
- 【悲報】ジャップ、日中戦争に賛成が5割弱...軍歌の音が聞こえる... [856698234]
- 晃←コレの読み方wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
- お前らが糞だと思うVIPPER
