ExcelのVBAに関する質問スレ
コード書き込みや作成依頼もOK
次スレは>>980が立てること
無理なら細かく安価指定
関連スレ
Excel VBA 質問スレ Part79(ワッチョイあり)
https://mevius.5ch.net/test/read.cgi/tech/1674875532/
※前スレ
Excel VBA 質問スレ Part79
https://mevius.5ch.net/test/read.cgi/tech/1674874007/
探検
Excel VBA 質問スレ Part80
■ このスレッドは過去ログ倉庫に格納されています
2023/05/31(水) 08:23:38.97ID:4RV1IxmB
238デフォルトの名無しさん
2023/12/04(月) 17:25:36.52ID:IJgpRS5M239デフォルトの名無しさん
2023/12/04(月) 20:44:12.36ID:iY+/6ufA >>236
落ち着いてよく考えてみ
落ち着いてよく考えてみ
240デフォルトの名無しさん
2023/12/04(月) 21:18:11.46ID:1Ww5lLLM ネタだろうな
241デフォルトの名無しさん
2023/12/05(火) 01:23:49.48ID:9BlMohwu よく知らないけど、この= は代入演算子か
j = j + 1
この= は比較演算子か
If rng.Column = 9 Then
こんな= を、2つの意味で使う言語ってあるの?
Ruby では、= は代入演算子で、== は比較演算子だけど
j = j + 1
この= は比較演算子か
If rng.Column = 9 Then
こんな= を、2つの意味で使う言語ってあるの?
Ruby では、= は代入演算子で、== は比較演算子だけど
242デフォルトの名無しさん
2023/12/05(火) 01:30:03.25ID:+1t+2z4I Rubyの話にしたい例のキチガイ
243デフォルトの名無しさん
2023/12/05(火) 06:54:56.45ID:i0GvpvVS244デフォルトの名無しさん
2023/12/05(火) 10:53:58.86ID:3p/65ALc 客観的にこの人はVBAができる人だと思ってもらうのに、VBAエキスパートのスタンダードを取るのは効果あり?
受験料高い上に対して難しくもない資格なんだけど、知らん人から見れば勘違いしてくれるかねぇ
受験料高い上に対して難しくもない資格なんだけど、知らん人から見れば勘違いしてくれるかねぇ
245デフォルトの名無しさん
2023/12/05(火) 11:03:15.47ID:3GhQ7B+D あんなハリボテみたいな資格で勘違いしてくれるような会社に入りたいのか?
246デフォルトの名無しさん
2023/12/05(火) 11:03:58.32ID:0D+v86FO 名刺に書くには恥ずかしくない?
247デフォルトの名無しさん
2023/12/05(火) 11:21:20.84ID:3p/65ALc248デフォルトの名無しさん
2023/12/05(火) 20:07:16.92ID:R0TA+AvY >>236
自分でステップ実行してどのように処理されているか確認してみては。本当に分からないならif文の仕組みを勉強するところから始める必要があるかと。
自分でステップ実行してどのように処理されているか確認してみては。本当に分からないならif文の仕組みを勉強するところから始める必要があるかと。
249デフォルトの名無しさん
2023/12/06(水) 23:52:59.21ID:Y0R/nynM250デフォルトの名無しさん
2023/12/07(木) 01:27:12.14ID:J0zHJsHa >>249
ちゃんとインデントついてるぞ
ちゃんとインデントついてるぞ
251デフォルトの名無しさん
2023/12/10(日) 09:52:24.49ID:b059r/QR フィルターの設定について質問させてください。各年の1月のデータを取得したいのですがうまくいきません。
手動だと、[日付フィルタ]から[期間内の全日付で1月を選んでできます。同じようにしたいのですがどうすればよいでしょうか?
ws.Rows("1:1").AutoFilter
' C列日付のフィルター条件を設定
Dim oldestYear As Integer
oldestYear = 2021 ' 最も古い年を指定
' 1月のデータを含むフィルター条件を設定
Dim filterCriteria As String
filterCriteria = ">=01/01/" & oldestYear & " AND <02/01/" & (oldestYear + 1)
' C列で条件に基づいてフィルタリング
ws.Columns("C:C").AutoFilter Field:=3, Criteria1:=filterCriteria
手動だと、[日付フィルタ]から[期間内の全日付で1月を選んでできます。同じようにしたいのですがどうすればよいでしょうか?
ws.Rows("1:1").AutoFilter
' C列日付のフィルター条件を設定
Dim oldestYear As Integer
oldestYear = 2021 ' 最も古い年を指定
' 1月のデータを含むフィルター条件を設定
Dim filterCriteria As String
filterCriteria = ">=01/01/" & oldestYear & " AND <02/01/" & (oldestYear + 1)
' C列で条件に基づいてフィルタリング
ws.Columns("C:C").AutoFilter Field:=3, Criteria1:=filterCriteria
252デフォルトの名無しさん
2023/12/10(日) 11:43:28.11ID:/HCFQ2uK 手動でうまくいくなら
マクロの記録→手動操作→記録終了
とすればマクロできてないか
マクロの記録→手動操作→記録終了
とすればマクロできてないか
253デフォルトの名無しさん
2023/12/10(日) 22:40:23.08ID:sT365tcs Stringなの?日付は
254デフォルトの名無しさん
2023/12/11(月) 20:35:30.67ID:bj1MKtN8 Integerじゃね?(適当
255デフォルトの名無しさん
2023/12/11(月) 20:37:58.60ID:dC/0oU5n 以外にもDecimal
256デフォルトの名無しさん
2023/12/11(月) 23:17:25.43ID:D21ZDkpy 意外?
257デフォルトの名無しさん
2023/12/12(火) 07:24:28.25ID:oC/8xaVQ >>251
そのフィルター条件の書き方はどこかで紹介されてたもの?
Criteria1に複数条件を入れず、分ける必要があるみたい
ws.Columns("C:C").AutoFilter Field:=3, Criteria1:=">=01/01/" & oldestYear, Operator:=xlAnd, Criteria2:="<02/01/" & (oldestYear + 1)
そのフィルター条件の書き方はどこかで紹介されてたもの?
Criteria1に複数条件を入れず、分ける必要があるみたい
ws.Columns("C:C").AutoFilter Field:=3, Criteria1:=">=01/01/" & oldestYear, Operator:=xlAnd, Criteria2:="<02/01/" & (oldestYear + 1)
258デフォルトの名無しさん
2023/12/12(火) 11:29:55.50ID:TixshqYj ユーザーフォームをワークブックから指定するにはどのようにすればいいですか?
セルだとこんな書き方をしてます
Workbooks(”book1”).Worksheets("Sheet1").Cells(1,1)
そこで
Workbooks(”book1”).UserForm1.Label1
のように書いたらエラーです
検索しても、ブックを指定せず単にUserForm1とだけ書いている事例しか見当たりませんでした
セルだとこんな書き方をしてます
Workbooks(”book1”).Worksheets("Sheet1").Cells(1,1)
そこで
Workbooks(”book1”).UserForm1.Label1
のように書いたらエラーです
検索しても、ブックを指定せず単にUserForm1とだけ書いている事例しか見当たりませんでした
259デフォルトの名無しさん
2023/12/12(火) 18:44:33.33ID:isBhbmiY 「やまぶきいろ」って
ヤマブ黄色かと思ってたら
山吹色だったんですね。
まあそれだと「ヤマブ」というのが意味不明なんだけど。
ヤマブ黄色かと思ってたら
山吹色だったんですね。
まあそれだと「ヤマブ」というのが意味不明なんだけど。
260デフォルトの名無しさん
2023/12/12(火) 18:47:07.92ID:EvQ2Bvwd お馬鹿自慢要らない
261デフォルトの名無しさん
2023/12/12(火) 21:52:49.64ID:FzkyMEiq まあ将来はマクロVBAは廃止されると予想されるからデカイ顔できるのも今のうちだぞ
262デフォルトの名無しさん
2023/12/13(水) 09:34:17.90ID:0IbkX0L9 VBベースじゃないほうがこれからは良いだろうしなあ
263デフォルトの名無しさん
2023/12/13(水) 10:08:54.21ID:fb2rzu10 仮にマクロ無くなってもでかい顔するやつはする
264デフォルトの名無しさん
2023/12/13(水) 10:20:57.24ID:ZzGWLSGP >>258
開いてるファイルからVBAを使って他のファイルのユーザーフォームを操作したい
みたいな要望に読めるけど、こういうことかな?
https://www.chishikinosoukonoseiri.com/entry/2019/06/02/excelvba-designer-another-book-userform-operation
この人も苦労したみたいだけど、結果が正しいのか正統派の記述方式なのかもよくわからん
Designer なんて今まで食べたこと無いし
しかもバージョンが若干古い? IE絡みのオブジェクトっぽいし、IE亡き今、通用するのか
どうかも不明 ま、サイトは今年の春に更新されてるから使えなくなったなら泣き言も
書かれていそうだがそれは無いからだいじょぶか?
行き詰ってるなら試してみる価値はありそう
開いてるファイルからVBAを使って他のファイルのユーザーフォームを操作したい
みたいな要望に読めるけど、こういうことかな?
https://www.chishikinosoukonoseiri.com/entry/2019/06/02/excelvba-designer-another-book-userform-operation
この人も苦労したみたいだけど、結果が正しいのか正統派の記述方式なのかもよくわからん
Designer なんて今まで食べたこと無いし
しかもバージョンが若干古い? IE絡みのオブジェクトっぽいし、IE亡き今、通用するのか
どうかも不明 ま、サイトは今年の春に更新されてるから使えなくなったなら泣き言も
書かれていそうだがそれは無いからだいじょぶか?
行き詰ってるなら試してみる価値はありそう
265デフォルトの名無しさん
2023/12/13(水) 10:52:16.86ID:+QBADPFJ VBA廃止でpowerqueryの時代が来る?
266デフォルトの名無しさん
2023/12/13(水) 11:21:09.91ID:bFxo3E2h >>264 レスありがとうございます
質問の意図はもっと単純で、複数ブックが開いているとき、Book1のマクロでcells(1.1).value=1みたいなコードを実行したとして、
実はBook2がアクティブだとBook1じゃなくてBook2の方が書き換わっちゃう
けど、操作したいセルをワークブック、ワークシートの順で書いとけば特定できる
ならば、複数ブックが開いていて、各ブックに同名のUserForm1があるとどうなるの?
どのブックかの明示は必要?書き方は? ということでした
(これを書いた方が良かったですね)
んで、カキコした後、試しにBook1、Book2にそれぞれ同名のUserForm1を作ってブックが2つ開かれてる状態にしても特に何も起きない
Book2をセル選択状態にして、Book1でUserForm1.ShowとやるとBook1側のユーザーフォームが開く
じゃあ、どのブックかの明示は不要?ほかの問題は起きないの?というのが現在の疑問です
マイクロソフトのリファレンスくらいは見ているのですけど理解できていません・・ 以前、オブジェクト階層樹形図のようなものがあった気がするけど、それも見つけられず・・
https://learn.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/userform-object
質問の意図はもっと単純で、複数ブックが開いているとき、Book1のマクロでcells(1.1).value=1みたいなコードを実行したとして、
実はBook2がアクティブだとBook1じゃなくてBook2の方が書き換わっちゃう
けど、操作したいセルをワークブック、ワークシートの順で書いとけば特定できる
ならば、複数ブックが開いていて、各ブックに同名のUserForm1があるとどうなるの?
どのブックかの明示は必要?書き方は? ということでした
(これを書いた方が良かったですね)
んで、カキコした後、試しにBook1、Book2にそれぞれ同名のUserForm1を作ってブックが2つ開かれてる状態にしても特に何も起きない
Book2をセル選択状態にして、Book1でUserForm1.ShowとやるとBook1側のユーザーフォームが開く
じゃあ、どのブックかの明示は不要?ほかの問題は起きないの?というのが現在の疑問です
マイクロソフトのリファレンスくらいは見ているのですけど理解できていません・・ 以前、オブジェクト階層樹形図のようなものがあった気がするけど、それも見つけられず・・
https://learn.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/userform-object
267デフォルトの名無しさん
2023/12/13(水) 11:21:15.74ID:hoISaMFl >>265
このハゲ!
このハゲ!
268デフォルトの名無しさん
2023/12/13(水) 11:26:50.73ID:bFxo3E2h269デフォルトの名無しさん
2023/12/13(水) 13:47:39.13ID:b26gKOXL >>266
ブックじゃなくてプロジェクトのメンバー
例えばプロジェクト名がVBAProject1で、UserForm1っていうフォームモジュールがあるとして
dim a as VBAProject1.UserForm1
set a = new VBAProject1.UserForm1
で指定できる
プロジェクト名はメニューのツール→(プロジェクト名)のプロパティとかから設定可能
ブックじゃなくてプロジェクトのメンバー
例えばプロジェクト名がVBAProject1で、UserForm1っていうフォームモジュールがあるとして
dim a as VBAProject1.UserForm1
set a = new VBAProject1.UserForm1
で指定できる
プロジェクト名はメニューのツール→(プロジェクト名)のプロパティとかから設定可能
270デフォルトの名無しさん
2023/12/13(水) 13:51:08.21ID:b26gKOXL こういうのはオブジェクトブラウザから見ると簡単に確認できるよ
今回なら適当なモジュール内で
dim a as UserForm1
と書いてUserForm1を右クリック→オブジェクトブラウザを選択すると
「Private Class UserForm1
VBAProject1 のメンバー」
と下部の説明欄に表示される
今回なら適当なモジュール内で
dim a as UserForm1
と書いてUserForm1を右クリック→オブジェクトブラウザを選択すると
「Private Class UserForm1
VBAProject1 のメンバー」
と下部の説明欄に表示される
271デフォルトの名無しさん
2023/12/13(水) 14:05:40.64ID:ZzGWLSGP >>266
じゃあ、みんな大好きオフィスTANAKAさんのこれで
http://officetanaka.net/excel/vba/tips/tips103.htm
変数に入れとけば他のファイルには影響出ないんじゃないかな、と
>Book2をセル選択状態にして、Book1でUserForm1.ShowとやるとBook1側のユーザー
フォームが開く
これは、Book1で・・の時点で選択状態が移行しちゃってるんじゃないのか?
あと、このページの中ほどで説明してるけど
https://www.kurumico.com/excel-vba-userform-show-2/4065/
>・実は、事前にメモリにロードされていないまま Showメソッドで UserForm を
>表示する場合、自動的にメモリにロードされているんです。
ここがミソか
いくつもファイルを開いて作業することが多いケースなら、Show では無く Load を使えと
最後にちゃんとUnLoadするのも忘れずに
じゃあ、みんな大好きオフィスTANAKAさんのこれで
http://officetanaka.net/excel/vba/tips/tips103.htm
変数に入れとけば他のファイルには影響出ないんじゃないかな、と
>Book2をセル選択状態にして、Book1でUserForm1.ShowとやるとBook1側のユーザー
フォームが開く
これは、Book1で・・の時点で選択状態が移行しちゃってるんじゃないのか?
あと、このページの中ほどで説明してるけど
https://www.kurumico.com/excel-vba-userform-show-2/4065/
>・実は、事前にメモリにロードされていないまま Showメソッドで UserForm を
>表示する場合、自動的にメモリにロードされているんです。
ここがミソか
いくつもファイルを開いて作業することが多いケースなら、Show では無く Load を使えと
最後にちゃんとUnLoadするのも忘れずに
272デフォルトの名無しさん
2023/12/13(水) 15:19:48.92ID:bFxo3E2h 皆さんありがとうございます
>>271
>選択状態が移行しちゃってるんじゃないの
それはないと判断してます、というのは
Book1に下記コードをかいておき、Book2のセルB2とかを選択した状態で、VBエディタの三角ボタンで実行すると、同名のユーザーフォームのうちBook1側が表示されるが、セル(1,1)はBook2側が操作されるからです
Sub 試験用()
UserForm1.Show
Cells(1,1).Value=1
End Sub
>>269
VBAProjectの下にあることは分かりました
オブジェクトブラウザも見ましたし、VBAProject1. と打ち込んで、入力サジェストにUserFormが出てくることも確認しました
で、2つのブックのプロジェクトも同名のVBAProject1にして、先ほどのコードのshowの行を下記に変えて実行しても結果は同じでした
VBAProject1.UserForm1.Show
つまり、指定が無いとシートやセルはその時アクティブなものを操作するけど、ユーザーフォームは(サブプロシージャとかも?)プロジェクト内から選択されるので、別ブックが開いていて、偶然同名のものがあっても問題ない、ということですかね
>>271
>選択状態が移行しちゃってるんじゃないの
それはないと判断してます、というのは
Book1に下記コードをかいておき、Book2のセルB2とかを選択した状態で、VBエディタの三角ボタンで実行すると、同名のユーザーフォームのうちBook1側が表示されるが、セル(1,1)はBook2側が操作されるからです
Sub 試験用()
UserForm1.Show
Cells(1,1).Value=1
End Sub
>>269
VBAProjectの下にあることは分かりました
オブジェクトブラウザも見ましたし、VBAProject1. と打ち込んで、入力サジェストにUserFormが出てくることも確認しました
で、2つのブックのプロジェクトも同名のVBAProject1にして、先ほどのコードのshowの行を下記に変えて実行しても結果は同じでした
VBAProject1.UserForm1.Show
つまり、指定が無いとシートやセルはその時アクティブなものを操作するけど、ユーザーフォームは(サブプロシージャとかも?)プロジェクト内から選択されるので、別ブックが開いていて、偶然同名のものがあっても問題ない、ということですかね
273デフォルトの名無しさん
2023/12/13(水) 15:24:52.44ID:bFxo3E2h >>271
xボタンで閉じても「メモリ上から削除」されるんですよね、もう一度落ち着いて読み返して見ますけど
xボタンで閉じても「メモリ上から削除」されるんですよね、もう一度落ち着いて読み返して見ますけど
274デフォルトの名無しさん
2023/12/13(水) 22:46:03.48ID:b26gKOXL >>272
>>プロジェクト内から選択されるので、別ブックが開いていて、偶然同名のものがあっても問題ない
その通りです。
参照設定やApplication.Runなどで明示的に他プロジェクトのメンバーを呼び出さない限り、
そのプロジェクト内では自らのプロジェクトのメンバーしか呼ばれません。
ちなみに UserForm1 が変数名ではなくクラス名の場合、自動的にインスタンス化されたフォームを参照します。
プロジェクトのメンバーはあくまでクラス(≒型レベル)であり、インスタンス(≒値レベル)ではないという事は注意してください。
また、「指定が無いとシートやセルはその時アクティブなものを操作する」は厳密には、省略されたと判断されたら親オブジェクトを補完しようとすると考えた方がいいです。
例えばそのスコープ内でCellsという名前を定義した場合、 Cells(1,1).Value と書いても省略されたと判断されずにその定義したオブジェクトが参照されます。
定義されていない場合は省略されたと判断され Application.ActiveSheet. が頭に追加されます。
>>プロジェクト内から選択されるので、別ブックが開いていて、偶然同名のものがあっても問題ない
その通りです。
参照設定やApplication.Runなどで明示的に他プロジェクトのメンバーを呼び出さない限り、
そのプロジェクト内では自らのプロジェクトのメンバーしか呼ばれません。
ちなみに UserForm1 が変数名ではなくクラス名の場合、自動的にインスタンス化されたフォームを参照します。
プロジェクトのメンバーはあくまでクラス(≒型レベル)であり、インスタンス(≒値レベル)ではないという事は注意してください。
また、「指定が無いとシートやセルはその時アクティブなものを操作する」は厳密には、省略されたと判断されたら親オブジェクトを補完しようとすると考えた方がいいです。
例えばそのスコープ内でCellsという名前を定義した場合、 Cells(1,1).Value と書いても省略されたと判断されずにその定義したオブジェクトが参照されます。
定義されていない場合は省略されたと判断され Application.ActiveSheet. が頭に追加されます。
275デフォルトの名無しさん
2023/12/14(木) 09:05:18.07ID:3Jt9wkWi >>274
詳しくありがとうございます
疑問だった同名ユーザーフォームの件はまずは解決です
後半の「スコープ内でCellsという名前を定義・・」の部分を練習問題と思って、
Book2選択状態でもBook1でCells(1,1).Value=1を実行してBook1側セルが操作されるコードを考えてみます
ご説明頂きながらこちらの理解が足らない状態です,もし、そーじゃねーよ、ということなら恐縮ですがご指摘頂ければ幸いです
詳しくありがとうございます
疑問だった同名ユーザーフォームの件はまずは解決です
後半の「スコープ内でCellsという名前を定義・・」の部分を練習問題と思って、
Book2選択状態でもBook1でCells(1,1).Value=1を実行してBook1側セルが操作されるコードを考えてみます
ご説明頂きながらこちらの理解が足らない状態です,もし、そーじゃねーよ、ということなら恐縮ですがご指摘頂ければ幸いです
276デフォルトの名無しさん
2023/12/21(木) 07:46:49.25ID:VfXlm8CZ 会社の先輩が
「サーバーがコケた」と言って魔した。
これはどういう意味なんですか?擬人法だとは思うけど。
「サーバーがコケた」と言って魔した。
これはどういう意味なんですか?擬人法だとは思うけど。
277デフォルトの名無しさん
2023/12/21(木) 07:46:58.32ID:VfXlm8CZ ま
278デフォルトの名無しさん
2023/12/21(木) 08:07:57.44ID:5xKtyKw4 >>276
板違い
板違い
279デフォルトの名無しさん
2023/12/21(木) 08:44:41.65ID:VfXlm8CZ Excelの先輩が
「サーバーがコケた」と言ってました。
これはどういう意味なんですか?擬人法だとは思うけど。
「サーバーがコケた」と言ってました。
これはどういう意味なんですか?擬人法だとは思うけど。
280デフォルトの名無しさん
2023/12/21(木) 08:45:07.84ID:VfXlm8CZ >>278
このハゲ!
このハゲ!
281デフォルトの名無しさん
2023/12/21(木) 10:36:38.99ID:xlAPeSS0 >>276
ウォーターサーバーかな?
ウォーターサーバーかな?
282デフォルトの名無しさん
2023/12/21(木) 11:39:20.36ID:VfXlm8CZ283デフォルトの名無しさん
2023/12/21(木) 15:11:32.27ID:UFnvFSs2 現在計算が自動なのか手動なのかを判断する変数は見つけたのですが、これをリアルタイムで画面に出力する方法ってありますでしょうか?
イメージとしては条件付き書式で現在の計算が自動なら青、手動なら赤を表示するみたいなのを実装したいです
イメージとしては条件付き書式で現在の計算が自動なら青、手動なら赤を表示するみたいなのを実装したいです
284デフォルトの名無しさん
2023/12/21(木) 19:59:01.09ID:3GSHThlW その変数の値をセルに表示するサブルーチンを作って1秒毎に実行する
285デフォルトの名無しさん
2023/12/21(木) 20:55:44.88ID:Zzwx7STl 毎回必ず自動計算にしてしまうのはだめなの?
286デフォルトの名無しさん
2023/12/22(金) 08:39:48.76ID:FajFP1p6287デフォルトの名無しさん
2023/12/22(金) 17:31:18.37ID:ldIFfRbs VBAは使わないが、
Webやローカルのデータを
外部参照するクエリーを
秒単位で更新させる機能はある。
あまり頻度を上げるとサーバに負荷をかけてしまうので、
確認しながら慎重に使っているが。
Webやローカルのデータを
外部参照するクエリーを
秒単位で更新させる機能はある。
あまり頻度を上げるとサーバに負荷をかけてしまうので、
確認しながら慎重に使っているが。
288デフォルトの名無しさん
2023/12/23(土) 15:28:27.09ID:TfHA7K1j >>283
よく使うシートでってなら、適当なオプションボタンなんかにその関数紐付けておけばいいんでは?
更にはそれで切替もできるような
全Workbookでってなら、フォームで作って呼出ボタンをクイックアクセスツールバーにでも置くくらい?
よく使うシートでってなら、適当なオプションボタンなんかにその関数紐付けておけばいいんでは?
更にはそれで切替もできるような
全Workbookでってなら、フォームで作って呼出ボタンをクイックアクセスツールバーにでも置くくらい?
289デフォルトの名無しさん
2023/12/24(日) 01:28:27.22ID:l/0x93fn A1:C1*D2:D5の計算結果を二次元配列にするみたいなときってループなしでできたりするんでしょうか?
ワークシート関数ならスピルで一発だと思うんですが、VBAだとどうなんでしょう?
ワークシート関数ならスピルで一発だと思うんですが、VBAだとどうなんでしょう?
290デフォルトの名無しさん
2023/12/24(日) 06:18:33.95ID:I70/tr7G ワークシート関数でできるならそれでやれば良いんじゃね
291デフォルトの名無しさん
2023/12/29(金) 20:50:51.68ID:1fvRXsft292デフォルトの名無しさん
2023/12/29(金) 20:53:15.92ID:1fvRXsft >>283
Excelを使わずに自分でデスクトップアプリを作った方がいいよ
Excelを使わずに自分でデスクトップアプリを作った方がいいよ
293デフォルトの名無しさん
2023/12/30(土) 01:00:29.23ID:lZZlE2RF >>291
これな。ネットの野良マクロをコピー職人が多い事多い事
これな。ネットの野良マクロをコピー職人が多い事多い事
294デフォルトの名無しさん
2023/12/31(日) 00:00:13.72ID:gZgGGHZV 綺麗すぎるコードはかえって怪しいかもな
295デフォルトの名無しさん
2023/12/31(日) 01:35:35.84ID:vraHwHL1 学校のテストじゃないんだから、評価されるのは仕事で結果を出したやつだけ
自作かコピペか、自分で考えたか人に聞きまくったかAIにやらせたか、手段が問われることなんてないから
自作かコピペか、自分で考えたか人に聞きまくったかAIにやらせたか、手段が問われることなんてないから
296デフォルトの名無しさん
2023/12/31(日) 17:53:00.32ID:3wmF+Ciz Dim Match As Object
Dim Matches As Collection
Dim Re As Object
Set Re = CreateObject("VBScript.RegExp")
Re.Pattern = "\d+"
Re.Global = True
Set Matches = Re.Execute("123qwe456rty789oikj")
For Each Match In Matches
Debug.Print Match.Value
Next Match
上記を実行するとMathesの型が違うとエラーが出ます。
Matchesが返すのはコレクションだと聞いていたのですが、Objectなのですか?
as Collectionで宣言するのは何故間違いなのでしょうか?
Dim Matches As Collection
Dim Re As Object
Set Re = CreateObject("VBScript.RegExp")
Re.Pattern = "\d+"
Re.Global = True
Set Matches = Re.Execute("123qwe456rty789oikj")
For Each Match In Matches
Debug.Print Match.Value
Next Match
上記を実行するとMathesの型が違うとエラーが出ます。
Matchesが返すのはコレクションだと聞いていたのですが、Objectなのですか?
as Collectionで宣言するのは何故間違いなのでしょうか?
297デフォルトの名無しさん
2023/12/31(日) 18:00:03.29ID:fNILhI+9 CollectionてVBA内部世界のオブジェクト管理に限るんじゃないの?
CreateObjectで作ったVBA外部のオブジェクトを扱えるとは思えないけど
CreateObjectで作ったVBA外部のオブジェクトを扱えるとは思えないけど
298デフォルトの名無しさん
2023/12/31(日) 18:55:45.23ID:1wnOvxvM >>296
クラスモジュールに書いてる?
クラスモジュールに書いてる?
299デフォルトの名無しさん
2024/01/01(月) 00:07:34.93ID:MaH6J7uc 開けましておめ
300デフォルトの名無しさん
2024/01/01(月) 01:30:53.10ID:/rCM9JK/ >>295
仕事だからこそ、どう作られているかが重要。
仕事だからこそ、どう作られているかが重要。
301デフォルトの名無しさん
2024/01/02(火) 08:54:33.87ID:nzmFeBBB >>283
やりたい目的言えば別の代替案出てきそう臭がする。
やりたい目的言えば別の代替案出てきそう臭がする。
302デフォルトの名無しさん
2024/01/02(火) 14:58:32.95ID:NJgc4isg Private Sub ListBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = vbKeyControl Then
MsgBox "ok"
End If
End Sub
UserForm1にリストボックスを設置してKeyDownイベントを置いただけです
Ctrl
Alt
Shift
を押してもキーダウン
イベント自体発生しないのですが何かヒントありますか?
もう少し詳細に書きます
If の行にブレイクポイントを作っても上の3つのキーを押したときは、無反応です
他のキーを押した場合はVBEが反応してブレイクポイントで処理が止まったことを示す強調色が表示されます。この結果から、上の3つのキーを押した場合のみKeyDownイベント自体が発生していないと判断しました
実は、自宅のデスクトップパソコン(Excel2019)でこのコードを実行すると、上の3つのキーでもちゃんと反応してくれます
会社のノートパソコン(おそらくExcel2016)だと上の3つのキーを押したときだけ無反応です。他のキー、例えば数字やアルファベットキーを押した場合はイベント発生します。
コードはコピペしてるので完全に同じです
よろしくお願いします
If KeyCode = vbKeyControl Then
MsgBox "ok"
End If
End Sub
UserForm1にリストボックスを設置してKeyDownイベントを置いただけです
Ctrl
Alt
Shift
を押してもキーダウン
イベント自体発生しないのですが何かヒントありますか?
もう少し詳細に書きます
If の行にブレイクポイントを作っても上の3つのキーを押したときは、無反応です
他のキーを押した場合はVBEが反応してブレイクポイントで処理が止まったことを示す強調色が表示されます。この結果から、上の3つのキーを押した場合のみKeyDownイベント自体が発生していないと判断しました
実は、自宅のデスクトップパソコン(Excel2019)でこのコードを実行すると、上の3つのキーでもちゃんと反応してくれます
会社のノートパソコン(おそらくExcel2016)だと上の3つのキーを押したときだけ無反応です。他のキー、例えば数字やアルファベットキーを押した場合はイベント発生します。
コードはコピペしてるので完全に同じです
よろしくお願いします
303デフォルトの名無しさん
2024/01/02(火) 17:08:18.59ID:CQp0gfLy304デフォルトの名無しさん
2024/01/02(火) 17:48:42.59ID:HPsEIlot >>302
フォームのKeyPreviewプロパティがTrueじゃないんだろ
フォームのKeyPreviewプロパティがTrueじゃないんだろ
305デフォルトの名無しさん
2024/01/02(火) 20:19:27.92ID:G9bvfkvl306デフォルトの名無しさん
2024/01/02(火) 21:37:51.33ID:HPsEIlot >>305が無能なだけでVBAのせいじゃなくね?
308デフォルトの名無しさん
2024/01/02(火) 23:13:53.34ID:MZzCTdib >>302
その3つは複数のキーを同時に押すことで特殊な動作をさせるために使っている
その3つは複数のキーを同時に押すことで特殊な動作をさせるために使っている
309デフォルトの名無しさん
2024/01/02(火) 23:57:34.67ID:NJgc4isg310デフォルトの名無しさん
2024/01/03(水) 00:16:06.66ID:PY0bko23 他のキーと同時に押さないとキーコードを送らない可能性は自分も考えていたのですが、もう少し掘り下げて調べてみます
311デフォルトの名無しさん
2024/01/03(水) 00:56:53.29ID:+zfFyPC5 馬鹿ってWindows標準でないキーアサインするよな
312デフォルトの名無しさん
2024/01/03(水) 08:50:41.30ID:Aw29e2Gk Emacs
313デフォルトの名無しさん
2024/01/03(水) 11:46:15.43ID:PY0bko23 >>302ですが、いくつか実験したところ解決しました
環境によって受け取れるキーコードが違うようです
イベントハンドラの第一引数KeyCodeにコントロールキーが入るケースと入らないケースがあるようで、会社の環境だと入らないようです
KeyCodeにコントロールキーが入る環境だと、コントロールキーを単独で打っても認識できるようなのですが、入らない環境だと他のキーとセットで打った場合のみ第二引数のShiftにコントロールキーがはいるようです
環境によって受け取れるキーコードが違うようです
イベントハンドラの第一引数KeyCodeにコントロールキーが入るケースと入らないケースがあるようで、会社の環境だと入らないようです
KeyCodeにコントロールキーが入る環境だと、コントロールキーを単独で打っても認識できるようなのですが、入らない環境だと他のキーとセットで打った場合のみ第二引数のShiftにコントロールキーがはいるようです
314デフォルトの名無しさん
2024/01/04(木) 09:51:48.22ID:8ldacu+2 ノートPCに外付けのキーボード接続すれば、自宅PCと同じ動作するかもね
確かにノートPCのキー・アサインはメーカーに依っても製造時期に依っても様々
確かにノートPCのキー・アサインはメーカーに依っても製造時期に依っても様々
315デフォルトの名無しさん
2024/01/04(木) 15:37:18.98ID:e9Yi6W7+ 素直にWindowsアプリを作ればいいのにな
316デフォルトの名無しさん
2024/01/04(木) 16:26:45.35ID:t9OXoE69317デフォルトの名無しさん
2024/01/04(木) 17:31:34.88ID:e9Yi6W7+ ハードウェアの割り込み、OSのメッセージをExcel経由で得るというのは素直じゃない。
318デフォルトの名無しさん
2024/01/04(木) 17:35:33.92ID:t9OXoE69 >>317
糞!糞!糞!
糞!糞!糞!
319デフォルトの名無しさん
2024/01/04(木) 19:08:52.50ID:e9Yi6W7+ Pythonについてはどう思ってんのかな?
320デフォルトの名無しさん
2024/01/04(木) 19:31:16.02ID:t9OXoE69 >>319
もう糞(ふん)をして寝るわ
もう糞(ふん)をして寝るわ
321デフォルトの名無しさん
2024/01/04(木) 19:44:33.23ID:zwj60hXG 5×5のセル内をソートして、左上が最大値でそこから昇順に右下が最小値にして数値を入れ替えるマクロって作れますか?
322デフォルトの名無しさん
2024/01/04(木) 20:28:44.78ID:e9Yi6W7+323デフォルトの名無しさん
2024/01/04(木) 20:48:12.58ID:epENqCjo Excelのバージョンわからないけど、そういうのは今はマクロでなくてシート関数で出来るレベル。
324デフォルトの名無しさん
2024/01/04(木) 21:30:12.87ID:TL+QpeJQ 最大値から昇順は全データが同一の時のみ可能なので、初期状態で必ず昇順になっている
マクロも関数もまったく必要ない
マクロも関数もまったく必要ない
325デフォルトの名無しさん
2024/01/04(木) 21:44:11.20ID:reskTtOH >>321
馬鹿は帰れ
馬鹿は帰れ
326デフォルトの名無しさん
2024/01/04(木) 21:58:19.60ID:vv8992PB >>321
昇順だと最大値より大きな値はないんじゃね
昇順だと最大値より大きな値はないんじゃね
327デフォルトの名無しさん
2024/01/04(木) 22:52:57.73ID:8ldacu+2 A1:E5まですでに埋まっていると
それを一旦作業列にでもコピーして昇順に並べ替えると
並び終わった順に5つずつA1:E1、B1:E2、・・という行ごとに埋めてくカタチなのか
A1、B1、A2、C1、B2、A3、・・と、ハスに埋めてくカタチなのか
A1:A5、B1:B5、C1:C5、・・と、列ごとに埋めてくカタチなのか
いや、いずれにしろA1:E5を入れ替えるなら関数は無理だろ マクロやVBAでしかできない
それを一旦作業列にでもコピーして昇順に並べ替えると
並び終わった順に5つずつA1:E1、B1:E2、・・という行ごとに埋めてくカタチなのか
A1、B1、A2、C1、B2、A3、・・と、ハスに埋めてくカタチなのか
A1:A5、B1:B5、C1:C5、・・と、列ごとに埋めてくカタチなのか
いや、いずれにしろA1:E5を入れ替えるなら関数は無理だろ マクロやVBAでしかできない
328デフォルトの名無しさん
2024/01/04(木) 23:18:36.18ID:44UH0tDv >>275
たいぶ亀だけど、最初に言った通り参照設定やApplication.Runを使用します。
まずBook2で選択状態のセルを取得するメソッド(関数)やプロパティを標準モジュールで作成して、
Book1のモジュール内で宣言したCellsに上記の方法で呼び出したその戻り値を割り当てます。
ただし、そもそも他のブックを見ているときに選択状態というのを認識してくれるのか検証してないです。
たいぶ亀だけど、最初に言った通り参照設定やApplication.Runを使用します。
まずBook2で選択状態のセルを取得するメソッド(関数)やプロパティを標準モジュールで作成して、
Book1のモジュール内で宣言したCellsに上記の方法で呼び出したその戻り値を割り当てます。
ただし、そもそも他のブックを見ているときに選択状態というのを認識してくれるのか検証してないです。
329デフォルトの名無しさん
2024/01/05(金) 11:28:46.79ID:OkMjEs1t330デフォルトの名無しさん
2024/01/07(日) 14:25:39.45ID:Zu5udfiU シートコピーとシート名変更について質問なのですが
アクティブシートの7個左にあるシートをコピーして
アクティブシートの右側にシート名を明日の日付(例:24年1月8日)にして貼り付け
という動きをさせたいんですがどうすればいいでしょうか?
アクティブシートの7個左にあるシートをコピーして
アクティブシートの右側にシート名を明日の日付(例:24年1月8日)にして貼り付け
という動きをさせたいんですがどうすればいいでしょうか?
331デフォルトの名無しさん
2024/01/07(日) 14:34:54.50ID:BWXKnEg4 「マクロの記録」でやりたい操作をコードにしてみ
332デフォルトの名無しさん
2024/01/07(日) 15:33:58.57ID:9MKsxzn1333デフォルトの名無しさん
2024/01/09(火) 20:19:55.53ID:/NZC7p4w ファイル移動をするのにNameで変数を使ってやりたいけどうまくできません
334デフォルトの名無しさん
2024/01/09(火) 20:23:46.49ID:/NZC7p4w >>333 の続き
Sub rename()
Name "C:\A\1.txt" As "C:\B\1.txt"
End Sub
だと移動できるけど
Sub rename()
Name Cells(1, 1) As Cells(2, 1)
End Sub
だとうまくいきません(A1 ←"C:\A\1.txt"、A2 ←"C:\B\1.txt")
書き方の問題ですか?それともNameで変数は使えませんか?
Sub rename()
Name "C:\A\1.txt" As "C:\B\1.txt"
End Sub
だと移動できるけど
Sub rename()
Name Cells(1, 1) As Cells(2, 1)
End Sub
だとうまくいきません(A1 ←"C:\A\1.txt"、A2 ←"C:\B\1.txt")
書き方の問題ですか?それともNameで変数は使えませんか?
335デフォルトの名無しさん
2024/01/09(火) 22:02:52.13ID:yOyd7K8a >>334
うちの環境では動いたのでなんか見落としているのではないかな
うちの環境では動いたのでなんか見落としているのではないかな
336デフォルトの名無しさん
2024/01/09(火) 22:31:05.76ID:g/zTW0/0 セル内の文字の頭にシングルクォーテーションがついてるとか。
337デフォルトの名無しさん
2024/01/10(水) 00:45:29.03ID:QjRR+OtK うまくいかないと主張するだけで絶対にエラーを書かないタイプ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市内閣、支持率横ばい75% (日経・テレ東 世論調査) ★2 [少考さん★]
- 【調査】クレジットカード、1人何枚持つのが「平均的」?★2 [ひぃぃ★]
- YOASOBI、日本人アーティスト初のアジア10大ドーム&スタジアムツアー開催 [muffin★]
- グレタさんがイタリアで演説 [少考さん★]
- 【作家】高市総理支持の背景に見えるヤンキー的「ケンカ上等!」と「日本人は特別だ」感がとても怖い 北原みのり [少考さん★]
- 「ヘイトスピーチをやめろ」 各地の「移民反対デモ」に抗議活動 [蚤の市★]
- 【U-NEXT】プレミアリーグ総合 ★38
- 【DAZN】フォーミュラGP【F1 2 3 SF P】Lap1814
- ハム専 エスコン日韓OB戦
- 競輪実況★1615
- 【DAZN】フォーミュラGP【F1 2 3 SF P】Lap1813
- 【D専】 ★2
- フィフィ「「歌唱強制中断」騒動、この時期に中国でライブ公演しようとするアーティストの方にも問題があるのでは?」 [377482965]
- まったり進行おじゃる丸待機ハウス🏡
- 【実況】わため!!!のえちえちラムベガス(こよりあり?)🐏🧪
- タイ12歳少女売春事件ってあるけどさ、前から一部で言われてる東京が人身売買の一大拠点になってるって噂マジじゃねーの?高市早苗 [517791167]
- 【悲報】ホロライブ、派閥のせいで終了してしまう
- 🏡🌊💥👊😅👊💥🌊🏡
