!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑同じ内容を3行貼り付けること
ExcelのVBAに関する質問スレ
コード書き込みや作成依頼もOK
次スレは>>980が立てること
無理なら細かく安価指定
※前スレ
Excel VBA 質問スレ Part76
https://mevius.5ch.net/test/read.cgi/tech/1651339421/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
Excel VBA 質問スレ Part77
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (TW 0H42-j7SA)
2022/07/17(日) 07:07:35.59ID:tS4zKdphH728デフォルトの名無しさん (ワッチョイ c23d-dJZP)
2022/09/24(土) 09:33:48.67ID:DeEi7HC40 >>727
レジストリ操作でやりたいことができたわ。
レジストリ操作でやりたいことができたわ。
729デフォルトの名無しさん (ワッチョイ 12e1-JMZf)
2022/09/24(土) 14:15:19.28ID:qbD2jrks0 お、おう、よかったな
730デフォルトの名無しさん (ワッチョイ d697-JEMU)
2022/09/25(日) 05:30:19.65ID:/q7OsFL50 一般ユーザがある列のセルを編集できないようにしたい。
でも、VBAの実行や、セル関数の結果は反映させたい。
https://support.microsoft.com/ja-jp/office/excel-%E3%81%A7%E3%82%BB%E3%83%AB%E3%82%92%E3%83%AD%E3%83%83%E3%82%AF%E3%81%99%E3%82%8B-b942fe92-5e87-0985-214b-9617b5b6d53f
↑セルのロック
という機能で試してみたがVBAマクロでの変更は許されなくてちょっと困っています。
セルに対してマウスイベントを発生させない。みたいなことを考えて、調べているが。
皆さんも悩まれる案件かと思います。もっと良い方法ないでしょうか?
でも、VBAの実行や、セル関数の結果は反映させたい。
https://support.microsoft.com/ja-jp/office/excel-%E3%81%A7%E3%82%BB%E3%83%AB%E3%82%92%E3%83%AD%E3%83%83%E3%82%AF%E3%81%99%E3%82%8B-b942fe92-5e87-0985-214b-9617b5b6d53f
↑セルのロック
という機能で試してみたがVBAマクロでの変更は許されなくてちょっと困っています。
セルに対してマウスイベントを発生させない。みたいなことを考えて、調べているが。
皆さんも悩まれる案件かと思います。もっと良い方法ないでしょうか?
731デフォルトの名無しさん (ワッチョイ 124f-EPsI)
2022/09/25(日) 06:18:07.93ID:jaItMug30 VBAん中でロック解除して
処理終了間際にロックし直しってんじゃだめなの?
処理終了間際にロックし直しってんじゃだめなの?
732デフォルトの名無しさん (ワッチョイ b35f-6O56)
2022/09/25(日) 07:44:30.90ID:dPa0+M2C0 SheetSelectionイベントとIntersect使うだけでは
733デフォルトの名無しさん (ワッチョイ 136e-r4yT)
2022/09/25(日) 09:13:59.54ID:nIE2ah490 お願いします。
検索をシートからではなくブックからをデフォルトにしたいです。
下記のサイトのコードを使い検索は出来るのですが、
結果表示ではなく( '<全てのシートの検索が終わったら、結果を表示します。> )、
検索値まで移動するにはどのようにコードを書けばいいか、ご教授願います。。
https://www.moug.net/tech/exvba/0040005.html
検索をシートからではなくブックからをデフォルトにしたいです。
下記のサイトのコードを使い検索は出来るのですが、
結果表示ではなく( '<全てのシートの検索が終わったら、結果を表示します。> )、
検索値まで移動するにはどのようにコードを書けばいいか、ご教授願います。。
https://www.moug.net/tech/exvba/0040005.html
734デフォルトの名無しさん (ワッチョイ 12d8-m1DB)
2022/09/25(日) 10:44:33.52ID:mk9vdghN0 >>730
worksheet_boforedoubleclick みたいなイベントプロシージャでできる
worksheet_boforedoubleclick みたいなイベントプロシージャでできる
735デフォルトの名無しさん (ワッチョイ d697-JEMU)
2022/09/25(日) 10:58:13.51ID:/q7OsFL50736デフォルトの名無しさん (ワッチョイ 1e66-JEMU)
2022/09/28(水) 13:31:05.50ID:/kKDTdjO0 A1:10もしくはA100に入力された値を配列に格納しています。
動的配列です。
Select Case 文字列A
case A1:A100のどれかに一致するなら
case B1:B100のどれかに一致するなら
みたいな書き方って出来ないのでしょうか?
動的配列です。
Select Case 文字列A
case A1:A100のどれかに一致するなら
case B1:B100のどれかに一致するなら
みたいな書き方って出来ないのでしょうか?
737デフォルトの名無しさん (ワッチョイ 4bda-tX/F)
2022/09/28(水) 13:35:10.17ID:Rj0JQSes0 ifで条件書けよ
738デフォルトの名無しさん (ワッチョイ 124f-EPsI)
2022/09/28(水) 15:15:27.03ID:n6LgYqsE0 >>736
恐らく出来ない。
ただ、Select Case の後の文字列の部分をTrueとして、
A10:A100の中に該当文字列が有った場合、
Trueを返す関数を作成して、Case文の後ろに記載して
その条件に当たったかを判別して、Case文の下に
その条件下での処理を記載することは可能。
Caseにある条件のA10:A100にとある文字列が
有った場合とB10:B100にとある文字列が
有った場合と下に続く処理が同じなら、
先程言った関数の引数に対象範囲と検索対象文字列を
持たせておけばCase文を使う必要すら無い。
戻り値がTrueかFalseかをIf文で判断すれば良い。
その辺は実際の状況に合わせて上手く作ってくれ。
恐らく出来ない。
ただ、Select Case の後の文字列の部分をTrueとして、
A10:A100の中に該当文字列が有った場合、
Trueを返す関数を作成して、Case文の後ろに記載して
その条件に当たったかを判別して、Case文の下に
その条件下での処理を記載することは可能。
Caseにある条件のA10:A100にとある文字列が
有った場合とB10:B100にとある文字列が
有った場合と下に続く処理が同じなら、
先程言った関数の引数に対象範囲と検索対象文字列を
持たせておけばCase文を使う必要すら無い。
戻り値がTrueかFalseかをIf文で判断すれば良い。
その辺は実際の状況に合わせて上手く作ってくれ。
739デフォルトの名無しさん (ワッチョイ 92da-pXuy)
2022/09/28(水) 16:15:51.79ID:vR69ytL90 select caseにtrue??
知らなかったわ何それ??
知らなかったわ何それ??
740デフォルトの名無しさん (ワッチョイ 1601-U30X)
2022/09/28(水) 18:26:27.19ID:Pxqx/4k10 Do
With
End With
Loop
よりも
With
Do
Loop
End With
の方が計算が早い(PCにとっては楽)と考えてよいでしょうか
With
End With
Loop
よりも
With
Do
Loop
End With
の方が計算が早い(PCにとっては楽)と考えてよいでしょうか
741デフォルトの名無しさん (ワッチョイ 12c7-qdT0)
2022/09/28(水) 19:01:46.26ID:8l5UWazH0742デフォルトの名無しさん (アウアウウー Sa43-Eihw)
2022/09/28(水) 19:28:29.47ID:Aad51sjLa >>736
Private Function F(R As RangeRange, S As String) As Boolean
Dim C As Range
For Each C In R
If C.Value = S Then
F = True
Exit Function
End If
Next
F = False
End Function
...
Select Case True
Case F(Range("A1:100"), 文字列A)
...
Case F(Range("B1:100"), 文字列A)
...
Case ...
End Select
Private Function F(R As RangeRange, S As String) As Boolean
Dim C As Range
For Each C In R
If C.Value = S Then
F = True
Exit Function
End If
Next
F = False
End Function
...
Select Case True
Case F(Range("A1:100"), 文字列A)
...
Case F(Range("B1:100"), 文字列A)
...
Case ...
End Select
743デフォルトの名無しさん (アウアウウー Sa43-Eihw)
2022/09/28(水) 19:32:38.30ID:Aad51sjLa744デフォルトの名無しさん (ワッチョイ 124f-EPsI)
2022/09/28(水) 19:38:38.93ID:n6LgYqsE0 >>740
これも恐らくの話で申し訳ないけど、
元々Withで設定されているインスタンスが既に生成されているものであれば、その格納アドレス先を読むだけなので
Withがループの外にあっても中にあっても処理コストは変わらないと思う。
変わったとしても繰り返し実行での誤差と見分けが付かない程度と思われる。
逆にインスタンスが生成されておらず、With New 〜 のようにWithでインスタンスを生成する場合は
ヒープエリアのメモリにそのインスタンスを展開するため、Withがループの外に有った方が処理コストは低くて済む。
・・・はず。
これも恐らくの話で申し訳ないけど、
元々Withで設定されているインスタンスが既に生成されているものであれば、その格納アドレス先を読むだけなので
Withがループの外にあっても中にあっても処理コストは変わらないと思う。
変わったとしても繰り返し実行での誤差と見分けが付かない程度と思われる。
逆にインスタンスが生成されておらず、With New 〜 のようにWithでインスタンスを生成する場合は
ヒープエリアのメモリにそのインスタンスを展開するため、Withがループの外に有った方が処理コストは低くて済む。
・・・はず。
745デフォルトの名無しさん (アウアウウー Sa43-Cd/v)
2022/09/28(水) 19:40:24.19ID:2tCqxjcra とりっきー
746デフォルトの名無しさん (スプッッ Sd52-PyVD)
2022/09/28(水) 19:51:29.67ID:30UfjVhGd747デフォルトの名無しさん (ワッチョイ 12d8-m1DB)
2022/09/28(水) 21:06:15.14ID:Apn5XmOg0 >>742
結局If文でラップしてるだけじゃん
結局If文でラップしてるだけじゃん
748デフォルトの名無しさん (ワッチョイ 92da-pXuy)
2022/09/28(水) 21:06:47.83ID:vR69ytL90749デフォルトの名無しさん (ワッチョイ 1201-ut7I)
2022/09/28(水) 21:20:17.00ID:0sCmeNkX0 >>747
If 文でラップとか意味わからんこと言われてもw
If 文でラップとか意味わからんこと言われてもw
750デフォルトの名無しさん (ワッチョイ 92da-pXuy)
2022/09/29(木) 00:27:52.00ID:tkXe+LzA0 ヘイヘイヘイ~!
もしも~オブジェクト変数でぇ~宣言したぁ~値がぁ🎵
ラップ調
もしも~オブジェクト変数でぇ~宣言したぁ~値がぁ🎵
ラップ調
751デフォルトの名無しさん (ワッチョイ 4bda-Cd/v)
2022/09/29(木) 01:53:20.13ID:I3DbECBa0 ラップのセンスはいまいちだね
752736 (ワッチョイ 1e66-JEMU)
2022/09/30(金) 17:41:05.63ID:8DTKPQSA0 >>738-742
ありがとうございました。
変数Strの中の値が配列Listのどれかと一致するかということだったので、そのCountIFがまさにその通りでした。
それようの関数書いてSelect case True使わせていただきます。
ありがとうございました。
変数Strの中の値が配列Listのどれかと一致するかということだったので、そのCountIFがまさにその通りでした。
それようの関数書いてSelect case True使わせていただきます。
753デフォルトの名無しさん (ワッチョイ 124f-EPsI)
2022/09/30(金) 21:34:23.42ID:RGIc4eHD0 >>752
Select Case True の話持ち出しといてなんだけど
最初のCase の条件に引っ掛かってその下の処理を実行した後でも
次のCaseの条件に引っかかったらその下の処理も実行するからそれだけは気をつけてね
Select Case True の話持ち出しといてなんだけど
最初のCase の条件に引っ掛かってその下の処理を実行した後でも
次のCaseの条件に引っかかったらその下の処理も実行するからそれだけは気をつけてね
754デフォルトの名無しさん (スッップ Sd32-r4yT)
2022/09/30(金) 22:06:41.52ID:ZYIMeitZd >>753
そんなことないのでは?と思って試したけどやっぱりそんなことなかったんだが
普通はcaseの条件の中に入ったら次のステップはEnd Selectにいかないか?
Dim ncount As Long
ncount = 0
Select Case True
Case 0 = 0
ncount = ncount + 1
Case 1 = 1
ncount = ncount + 1
Case 2 = 2
ncount = ncount + 1
End Select
Debug.Print ncount
これは1になるんだが
そんなことないのでは?と思って試したけどやっぱりそんなことなかったんだが
普通はcaseの条件の中に入ったら次のステップはEnd Selectにいかないか?
Dim ncount As Long
ncount = 0
Select Case True
Case 0 = 0
ncount = ncount + 1
Case 1 = 1
ncount = ncount + 1
Case 2 = 2
ncount = ncount + 1
End Select
Debug.Print ncount
これは1になるんだが
755デフォルトの名無しさん (ワッチョイ 927c-cqZP)
2022/09/30(金) 22:32:22.37ID:ysasb+xw0 >>754
多分breakいれなきゃいけないCとかと勘違いしてるんだと思う
多分breakいれなきゃいけないCとかと勘違いしてるんだと思う
756デフォルトの名無しさん (ワッチョイ 1201-ut7I)
2022/09/30(金) 22:50:53.72ID:oHn8O8ll0 Select みたいな文で複数の選択肢が条件満たした場合に複数の選択肢を実行する言語って PowerShell ぐらいしか知らんけど他にもあるんだろうか?
757デフォルトの名無しさん (ワッチョイ 032f-qv7X)
2022/09/30(金) 23:04:52.77ID:FO5tGPcx0758デフォルトの名無しさん (ワッチョイ 12d8-m1DB)
2022/09/30(金) 23:17:37.16ID:2no5G0l30 CもそうだしJavaもそうだしPythonもそうだしJavaScriptもそう
759デフォルトの名無しさん (ワッチョイ 1201-ut7I)
2022/09/30(金) 23:34:30.49ID:oHn8O8ll0760デフォルトの名無しさん (ワッチョイ 12d8-m1DB)
2022/09/30(金) 23:56:30.92ID:2no5G0l30761デフォルトの名無しさん (アウアウウー Sa27-VbfW)
2022/10/01(土) 00:36:40.48ID:fyOJn4KOa >>754
これってコンパイル時に畳み込みで定数化されて同一のラベルが複数あってエラーになるとかしないのか
これってコンパイル時に畳み込みで定数化されて同一のラベルが複数あってエラーになるとかしないのか
762デフォルトの名無しさん (スップ Sd1f-XcTz)
2022/10/01(土) 01:42:48.83ID:a0drtoBbd >>761
馬鹿にはそう思えるのだろ
馬鹿にはそう思えるのだろ
763デフォルトの名無しさん (ワッチョイ 332f-kE2G)
2022/10/01(土) 01:48:20.03ID:AX86MJ2c0 >>759
ああ、まさにfall throughだった
つかそうなると、fall throughじゃなくて
複数一致したら複数ブロック実行するような言語って知らないな
PowerShellってそうなのか?
ああ、まさにfall throughだった
つかそうなると、fall throughじゃなくて
複数一致したら複数ブロック実行するような言語って知らないな
PowerShellってそうなのか?
764デフォルトの名無しさん (ワッチョイ 332f-kE2G)
2022/10/01(土) 01:53:07.95ID:AX86MJ2c0 >>761
VBAのCaseは定数以外にいろいろ書けるから
VBAのCaseは定数以外にいろいろ書けるから
765デフォルトの名無しさん (ワッチョイ ff01-d1zO)
2022/10/01(土) 04:50:29.38ID:igg+s+OR0 >>763
複数一致
同じ条件を複数回追加すれば、それらすべてがトリガーされます。
https://learn.microsoft.com/ja-jp/powershell/scripting/learn/deep-dives/everything-about-switch?view=powershell-7.2
複数一致
同じ条件を複数回追加すれば、それらすべてがトリガーされます。
https://learn.microsoft.com/ja-jp/powershell/scripting/learn/deep-dives/everything-about-switch?view=powershell-7.2
766デフォルトの名無しさん (ワッチョイ ff4f-PeWp)
2022/10/01(土) 07:29:29.38ID:66c8QTBM0 みんないろんな言語やってるのね
767デフォルトの名無しさん (ワッチョイ ff7c-HI6Y)
2022/10/01(土) 07:40:45.91ID:BiebxrBw0 他言語やってる人が暇潰しに見に来る場所って印象があるよね
質問も簡単だし答えるほうに余裕があるので他スレと比べると寛容というかギスギスしてない
質問も簡単だし答えるほうに余裕があるので他スレと比べると寛容というかギスギスしてない
768デフォルトの名無しさん (スププ Sd1f-z20m)
2022/10/01(土) 13:08:15.88ID:sQwPc1U3d Excelでデータベースを作り、各レコード?事に
〜月〜日 〜
〜月〜日 〜
みたいなログを表示したいのですがどの様にすればできるのか教えていただけませんか?
〜月〜日 〜
〜月〜日 〜
みたいなログを表示したいのですがどの様にすればできるのか教えていただけませんか?
769デフォルトの名無しさん (ワッチョイ b3e6-Aqn+)
2022/10/01(土) 13:10:34.86ID:PSWCeSJW0 キーボードで打ち込め
770デフォルトの名無しさん (ワッチョイ d3da-pIDl)
2022/10/01(土) 13:17:44.94ID:GEkLNCKa0771デフォルトの名無しさん (スププ Sd1f-z20m)
2022/10/01(土) 13:31:32.89ID:sQwPc1U3d テキストボックスにセルの値を参照するとか、繰り返しの処理とかlookup関数とかindexとmatch関数はわかります
あとはこのリストが欲しいです
あとはこのリストが欲しいです
772デフォルトの名無しさん (アウアウウー Sa27-e/IJ)
2022/10/01(土) 13:34:23.97ID:mp76wcbAa MSのサイトを見ればいいだけじゃね?
773デフォルトの名無しさん (ブーイモ MM7f-HI6Y)
2022/10/01(土) 14:11:06.32ID:m6/aGG23M774デフォルトの名無しさん (ワッチョイ ffda-qv7/)
2022/10/01(土) 14:50:47.98ID:ozHkf13K0 もう自分で勉強してくれって。
775デフォルトの名無しさん (ワッチョイ ff4f-PeWp)
2022/10/01(土) 15:38:51.00ID:66c8QTBM0 >>768
そもそもそのログの日付とやらはどこから持ってくるつもりなのか
そもそもそのログの日付とやらはどこから持ってくるつもりなのか
776デフォルトの名無しさん (ワッチョイ ff3e-z20m)
2022/10/01(土) 15:39:00.83ID:05rfSfda0 >>773
すみません
VBAのユーザーフォームで検索用のテキストボックスを作り、
検索結果に該当したレコード(行)を選択(抽出)?して
それをテキストボックス2やリストボックスに表示したいです
〜番(ID)
名前
テキストボックス(リストボックス)
〜月〜日 何をした
みたいな表示画面が作りたいです
すみません
VBAのユーザーフォームで検索用のテキストボックスを作り、
検索結果に該当したレコード(行)を選択(抽出)?して
それをテキストボックス2やリストボックスに表示したいです
〜番(ID)
名前
テキストボックス(リストボックス)
〜月〜日 何をした
みたいな表示画面が作りたいです
777デフォルトの名無しさん (ワッチョイ ff3e-z20m)
2022/10/01(土) 15:40:48.76ID:05rfSfda0778デフォルトの名無しさん (ブーイモ MM7f-FQI2)
2022/10/01(土) 16:48:39.94ID:vnBH5ihbM >>776
まずワークシート上でlookup,index,matchで検索、表示できるものを作る。
それからフォームのテキストボックスに入れた値をワークシートの検索用のセルに書き込み、結果をフォーム上のテキストボックス、リストボックスに書き込むVBAを作る。
まずワークシート上でlookup,index,matchで検索、表示できるものを作る。
それからフォームのテキストボックスに入れた値をワークシートの検索用のセルに書き込み、結果をフォーム上のテキストボックス、リストボックスに書き込むVBAを作る。
779デフォルトの名無しさん (ワッチョイ ff3e-z20m)
2022/10/01(土) 16:50:40.38ID:05rfSfda0780デフォルトの名無しさん (ワッチョイ d3da-pIDl)
2022/10/01(土) 16:52:55.19ID:GEkLNCKa0 どこでつまずいているかを書かないで答えだけほしいとか言われてもね
781デフォルトの名無しさん (スッップ Sd1f-ufYE)
2022/10/01(土) 16:55:41.93ID:HuJ3UkiEd782デフォルトの名無しさん (ワッチョイ 332f-kE2G)
2022/10/01(土) 17:09:04.65ID:AX86MJ2c0783デフォルトの名無しさん (ワッチョイ ff7c-ufYE)
2022/10/01(土) 18:15:10.78ID:BiebxrBw0 セルの内容(日付のところは文字列型(頭にアポストロフィ)で入れてる)
ID 名前 日付 イベント
1 名前1 2012年3月14日 Aをした
2 名前2 2012年3月15日 Bをした
3 名前3 2012年3月16日 Cをした
4 名前4 2012年3月17日 Dをした
5 名前5 2012年3月18日 Eをした
6 名前6 2012年3月19日 Fをした
※Sheet1のマクロ
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With UserForm1
y = ActiveCell.Row
.TextBox1 = Cells(y, 1)
.TextBox2 = Cells(y, 2)
.TextBox3 = Cells(y, 3) + vbNewLine + Cells(y, 4)
End With
End Sub
フォーム(UserForm1)を作って下記コントロールを配置
TextBox,TextBox1,TextBox2,TextBox3(Multiline=true),CommandButton1
UserForm1のマクロ
Private Sub CommandButton1_Click()
Sheets(1).Range("A1").AutoFilter 2, "*" & UserForm1.TextBox.Text & "*"
End Sub
ファイル開くイベントとかボタン作って下記マクロでフォームを表示
UserForm1.Show vbModeless
聞いた限りではこんなのしか思い浮かばない
ID 名前 日付 イベント
1 名前1 2012年3月14日 Aをした
2 名前2 2012年3月15日 Bをした
3 名前3 2012年3月16日 Cをした
4 名前4 2012年3月17日 Dをした
5 名前5 2012年3月18日 Eをした
6 名前6 2012年3月19日 Fをした
※Sheet1のマクロ
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With UserForm1
y = ActiveCell.Row
.TextBox1 = Cells(y, 1)
.TextBox2 = Cells(y, 2)
.TextBox3 = Cells(y, 3) + vbNewLine + Cells(y, 4)
End With
End Sub
フォーム(UserForm1)を作って下記コントロールを配置
TextBox,TextBox1,TextBox2,TextBox3(Multiline=true),CommandButton1
UserForm1のマクロ
Private Sub CommandButton1_Click()
Sheets(1).Range("A1").AutoFilter 2, "*" & UserForm1.TextBox.Text & "*"
End Sub
ファイル開くイベントとかボタン作って下記マクロでフォームを表示
UserForm1.Show vbModeless
聞いた限りではこんなのしか思い浮かばない
784デフォルトの名無しさん (ワッチョイ ffe1-3QPM)
2022/10/01(土) 18:31:08.84ID:oCrNNmAI0 VBAのPicture.Insertでリンク貼付けさせないようにクリップボード利用でPasteで貼り付けてみたら画像が異常に重くなりすぎて使い物にならない…。
おとなしくShapes.addPicture使うしかない?
おとなしくShapes.addPicture使うしかない?
785デフォルトの名無しさん (ワッチョイ b3da-3g2I)
2022/10/01(土) 18:49:59.64ID:PeKIyBQF0 >>768
Listobject作ってListrowsを都度登録する仕組みを作って目的のListrows()を呼び出すユーザーフォームを作ればいいんじゃないっすかね。
Listobject作ってListrowsを都度登録する仕組みを作って目的のListrows()を呼び出すユーザーフォームを作ればいいんじゃないっすかね。
786デフォルトの名無しさん (スッップ Sd1f-ufYE)
2022/10/01(土) 18:55:31.78ID:HuJ3UkiEd まず質問者は何ができて何ができないのか気になるが何もできないんだろうなと推測してる
なのでここで丸投げしてバカなお人よしに作ってもらおうとしてるんだろ
なのでここで丸投げしてバカなお人よしに作ってもらおうとしてるんだろ
787デフォルトの名無しさん (ワッチョイ ff7c-HI6Y)
2022/10/01(土) 23:20:55.43ID:BiebxrBw0 猪木が死んだ、時代が流れていく
思えばPCとの付き合いももう40年か
戦時中はと口癖のように言っていたジジイ共も消えてアマチュア無線なみにニッチな趣味だったPCが主流になるとは不思議なものだ
思えばPCとの付き合いももう40年か
戦時中はと口癖のように言っていたジジイ共も消えてアマチュア無線なみにニッチな趣味だったPCが主流になるとは不思議なものだ
788デフォルトの名無しさん (ワッチョイ d3da-pIDl)
2022/10/02(日) 07:27:45.20ID:ySn/5a2I0 >>784
もとの画像が大きいんじゃね、表示用の画像を別途つくってから貼り付けてみ
もとの画像が大きいんじゃね、表示用の画像を別途つくってから貼り付けてみ
789デフォルトの名無しさん (ワッチョイ ff3e-z20m)
2022/10/02(日) 13:27:44.47ID:TlawqFoR0790デフォルトの名無しさん (ワッチョイ c3cd-vqPj)
2022/10/02(日) 15:47:28.98ID:DdgukWIZ0791デフォルトの名無しさん (ワッチョイ ff3e-z20m)
2022/10/02(日) 20:54:31.26ID:TlawqFoR0 VBAは作業を登録して自動化するくらいで覚えておいた方がいいですよね
792デフォルトの名無しさん (ワッチョイ ffe1-3QPM)
2022/10/03(月) 06:16:19.93ID:S2WAje4f0793デフォルトの名無しさん (ワッチョイ 53a2-zVVQ)
2022/10/03(月) 07:27:24.16ID:4wRZXMmm0 VBEに書いたコードの整列っていうかコードを整えるっていうか自動インデントっていうかそんなショートカットキーがあったと思うけどなんだっけ?
794デフォルトの名無しさん (ワッチョイ 53ce-OAEy)
2022/10/03(月) 17:56:19.40ID:M1bZx+HZ0 タブ
795デフォルトの名無しさん (ワッチョイ ff4f-PeWp)
2022/10/03(月) 20:58:11.99ID:FDmFS1zQ0796デフォルトの名無しさん (ワッチョイ 6f7d-e5cN)
2022/10/04(火) 15:00:55.06ID:pLalriKq0 イベントで質問
余所で作ったエクセルにVBAで改造加えてるんだけど
1マス入力だけするSheetにActiveXのコマンドボタン付けたら
Worksheet_SelectionChange
が発生しなくなった
コマンドボタン押したイベントは拾ってるので
EnableEventsがFalseってわけじゃない(イミディエイトで確認済み)
デザインモードを解除してもWorksheet_SelectionChangeイベントが起きないので
しょうが無いからまた一から作り直したんだが
この現象って頻発するもの?
ググってもOfficeの修復かEnableEventsしか解決策が出てこない
余所で作ったエクセルにVBAで改造加えてるんだけど
1マス入力だけするSheetにActiveXのコマンドボタン付けたら
Worksheet_SelectionChange
が発生しなくなった
コマンドボタン押したイベントは拾ってるので
EnableEventsがFalseってわけじゃない(イミディエイトで確認済み)
デザインモードを解除してもWorksheet_SelectionChangeイベントが起きないので
しょうが無いからまた一から作り直したんだが
この現象って頻発するもの?
ググってもOfficeの修復かEnableEventsしか解決策が出てこない
797デフォルトの名無しさん (スププ Sd1f-Ycj2)
2022/10/04(火) 15:54:59.32ID:TDYI1fTGd >>792
Sub Macro1()
ActiveSheet.Pictures.Insert "C:\Work\Sample1.jpg"
End Sub
これで400KBのpngで試してみたけど
なぜかxlsmファイルのサイズは15KB
何か別の要因とか
Sub Macro1()
ActiveSheet.Pictures.Insert "C:\Work\Sample1.jpg"
End Sub
これで400KBのpngで試してみたけど
なぜかxlsmファイルのサイズは15KB
何か別の要因とか
798デフォルトの名無しさん (ワッチョイ d3da-pIDl)
2022/10/04(火) 19:28:07.31ID:uOFwOuxi0 >>796
そりゃエクセルを改造したら駄目だろ
そりゃエクセルを改造したら駄目だろ
799デフォルトの名無しさん (ワッチョイ 332f-LIzE)
2022/10/04(火) 19:47:41.77ID:o+JurUyd0 >>792
オプションの詳細設定-イメージのサイズと画質 ってどうなってる?
オプションの詳細設定-イメージのサイズと画質 ってどうなってる?
800デフォルトの名無しさん (ワッチョイ 6f66-vqPj)
2022/10/04(火) 21:08:36.46ID:vyetwO+c0 Dim ar(2) As Variant
ar(0) = 1
ar(1) = 2
ar(2) = Split("1,2,3,4,5", ",")
Dim i
For i = 0 To UBound(ar(2))
ar(2)(i) = CLng(ar(2)(i))
Next i
splitで作ったジャグ配列の中身をlong型に変換したいです。
variant変数に一度入ったらもう無理ですか?
一応他の変数に入れる事で型変換には成功するのですが。
余計な変数を二つも用意してstringで作成されたのを一時的なvariant型ノーマル配列に
おさめてmそのあとで本当に使いたい配列のジャグ配列に入れていくというのが
どうも汚い感じで腑におちません。
アドバイスもらえると助かります。
ar(0) = 1
ar(1) = 2
ar(2) = Split("1,2,3,4,5", ",")
Dim i
For i = 0 To UBound(ar(2))
ar(2)(i) = CLng(ar(2)(i))
Next i
splitで作ったジャグ配列の中身をlong型に変換したいです。
variant変数に一度入ったらもう無理ですか?
一応他の変数に入れる事で型変換には成功するのですが。
余計な変数を二つも用意してstringで作成されたのを一時的なvariant型ノーマル配列に
おさめてmそのあとで本当に使いたい配列のジャグ配列に入れていくというのが
どうも汚い感じで腑におちません。
アドバイスもらえると助かります。
801デフォルトの名無しさん (ワッチョイ ff4f-PeWp)
2022/10/04(火) 22:26:54.77ID:cce3s7590802800 (ワッチョイ 6f66-vqPj)
2022/10/04(火) 22:43:48.69ID:vyetwO+c0803デフォルトの名無しさん (ワッチョイ 332f-LIzE)
2022/10/04(火) 23:35:06.72ID:o+JurUyd0 >splitで作ったジャグ配列
>動的な配列の中にジャグ配列
ジャグ配列って用語の使い方が微妙に間違ってる気がするが...
そもそも文字列を分割して配列作ってるんだから文字列の配列になるのが当然で
Variant上等でやるなら、それを使う側がVariantで受ければいいだけでは?
まあ俺ならどうしても文字列をSplitしてLongにしたいなら
Longの配列返すSplitのラップ関数作るけど
>動的な配列の中にジャグ配列
ジャグ配列って用語の使い方が微妙に間違ってる気がするが...
そもそも文字列を分割して配列作ってるんだから文字列の配列になるのが当然で
Variant上等でやるなら、それを使う側がVariantで受ければいいだけでは?
まあ俺ならどうしても文字列をSplitしてLongにしたいなら
Longの配列返すSplitのラップ関数作るけど
804デフォルトの名無しさん (ワッチョイ e301-vqPj)
2022/10/05(水) 04:48:52.00ID:b9GTOuH90 sqliteで作ったジャグ配列。
805デフォルトの名無しさん (アウアウウー Sa27-3QPM)
2022/10/05(水) 07:10:06.74ID:8YZU4Hq7a >>797
それでいくとうまくいくんだけどね、
通常のPictures.Insertだとリンク貼付けなのよ。他人に送付したら見れない。
だから一旦クリップボード経由でPaste使ってやってるんだがそれだと容量がヤバくなる。
それでいくとうまくいくんだけどね、
通常のPictures.Insertだとリンク貼付けなのよ。他人に送付したら見れない。
だから一旦クリップボード経由でPaste使ってやってるんだがそれだと容量がヤバくなる。
806デフォルトの名無しさん (ワッチョイ ff4f-PeWp)
2022/10/05(水) 08:07:32.65ID:hw4y4dFR0 そもそも何でもかんでも配列で処理しようとするのがちょっとねぇ。
例えば列に当たる要素毎に違う型を使いたいなら
ちょっと仕組みは大きくなるけどADODBのRecordsetを使うことや
1行の列データ単位の値を格納するクラスを作ってそれを行単位としてディクショナリやコレクションに追加して行くことも検討することを視野に入れると
結局後で読みやすく汎用性の高いロジックが組めたりする。
処理速度優先なら配列一択だからそのときのシュチュエーションに合わせて使い分けだね。
例えば列に当たる要素毎に違う型を使いたいなら
ちょっと仕組みは大きくなるけどADODBのRecordsetを使うことや
1行の列データ単位の値を格納するクラスを作ってそれを行単位としてディクショナリやコレクションに追加して行くことも検討することを視野に入れると
結局後で読みやすく汎用性の高いロジックが組めたりする。
処理速度優先なら配列一択だからそのときのシュチュエーションに合わせて使い分けだね。
807デフォルトの名無しさん (ワッチョイ f35f-F/JR)
2022/10/05(水) 08:19:21.40ID:SsR8S72r0 構造体ではできんの?
ジャグ使う機会無いからなんとも言えんが
ジャグ使う機会無いからなんとも言えんが
808デフォルトの名無しさん (スプッッ Sd1f-ufYE)
2022/10/05(水) 10:50:57.71ID:HrKgxVhUd すぐDBとか持ち出す奴いるけどコスト考えたらそう簡単にDBなんか使わんと思うけどね
普通に配列処理用の関数のみのモジュールでコード管理すればいいだけと思うわ
普通に配列処理用の関数のみのモジュールでコード管理すればいいだけと思うわ
809デフォルトの名無しさん (スップ Sd1f-rSe5)
2022/10/05(水) 13:20:52.03ID:7KiNZ4t1d >>808
何のコスト?
何のコスト?
810デフォルトの名無しさん (ワッチョイ ffda-qv7/)
2022/10/05(水) 14:41:00.50ID:bxBPBLxH0 やっぱ好きなように作るのが1番ね
811デフォルトの名無しさん (ワッチョイ cf10-HI6Y)
2022/10/05(水) 15:47:13.70ID:DsSYxIFi0 ワークシートがDBみたいなもんだしね
812デフォルトの名無しさん (ラクッペペ MM7f-Aqn+)
2022/10/05(水) 15:53:15.41ID:tZ9pwx2fM 学習コスト
813デフォルトの名無しさん (ワッチョイ ff42-JExP)
2022/10/05(水) 21:19:11.66ID:/BrWnOTx0 コストコ
814デフォルトの名無しさん (ワッチョイ ffda-qv7/)
2022/10/05(水) 23:35:05.88ID:bxBPBLxH0 コスパ良い
815デフォルトの名無しさん (スププ Sd1f-zUcf)
2022/10/06(木) 16:49:22.22ID:wENRazb+d 例えば、誕生石を取得するGetBirthStone関数を作ろうとすれば引数は「日付 as Variant」と「月 as Integer(Long)」のどちらがいいでしょうか?
816デフォルトの名無しさん (ラクッペペ MM7f-lmfq)
2022/10/06(木) 16:54:16.04ID:lmEPcDvIM Dateではあかんのか?
817デフォルトの名無しさん (ブーイモ MM7f-HD9v)
2022/10/06(木) 16:55:37.45ID:1FPDwTBGM そんなもんVLOOKUPで誕生石シートを検索すれば十分
VBAを正しく使うコツはVBAを可能な限り書かないことだよ
VBAを正しく使うコツはVBAを可能な限り書かないことだよ
818デフォルトの名無しさん (スププ Sd1f-zUcf)
2022/10/06(木) 17:19:15.50ID:wENRazb+d >>816
Date型でも大丈夫ですか?
一応、最初の部分はこう書いてみました
If Not IsDate(日付) then
GetBirthStone = CVErr(xlErrValue)
Exit Function
Date型でも大丈夫ですか?
一応、最初の部分はこう書いてみました
If Not IsDate(日付) then
GetBirthStone = CVErr(xlErrValue)
Exit Function
819デフォルトの名無しさん (ワッチョイ 238e-rSe5)
2022/10/06(木) 17:48:34.71ID:KR9VbeXw0820デフォルトの名無しさん (スッップ Sd1f-ufYE)
2022/10/06(木) 19:10:02.45ID:YSVEcn1gd >>815
元のデータが何によるかで違うけど「月 as Integer(Long)」でいいのではと思う
仮に元のデータが日付でもGetBirthStone(Month(日付))で済む
月を渡すようなケースがありえないなら日付を渡して関数内でMonthを使うでもいい
元のデータが何によるかで違うけど「月 as Integer(Long)」でいいのではと思う
仮に元のデータが日付でもGetBirthStone(Month(日付))で済む
月を渡すようなケースがありえないなら日付を渡して関数内でMonthを使うでもいい
821デフォルトの名無しさん (ワッチョイ 435f-pIDl)
2022/10/06(木) 19:39:53.74ID:sUmENiPE0 月だけでいい
特定の日付に依らずある月の誕生石を知りたい場合に
意味のないDate値用意しなきゃいけなくなるから可読性が落ちる
>>817
誕生石みたいに改訂されたことがニュースになるくらい固定されてる内容ならコードにベタ打ちでいいと思う
祝日みたいに毎年変動するものとか、組合せの数が多すぎる要素ならシート管理の方が扱いやすいと思うけど
特定の日付に依らずある月の誕生石を知りたい場合に
意味のないDate値用意しなきゃいけなくなるから可読性が落ちる
>>817
誕生石みたいに改訂されたことがニュースになるくらい固定されてる内容ならコードにベタ打ちでいいと思う
祝日みたいに毎年変動するものとか、組合せの数が多すぎる要素ならシート管理の方が扱いやすいと思うけど
822デフォルトの名無しさん (ワッチョイ d3da-pIDl)
2022/10/06(木) 19:46:56.80ID:bktrTE7O0 >>815
その程度のこと自分で決められんようでは時間かかってしょうがないだろ
その程度のこと自分で決められんようでは時間かかってしょうがないだろ
823デフォルトの名無しさん (ワッチョイ 6f8c-SQdC)
2022/10/06(木) 19:49:13.70ID:gOgPUvPm0 >>815
Function getBirthStone(日付 As Date)
Application.Volatile True
getBirthStone = WorksheetFunction.Choose(Month(日付), "ガーネット", "アメシスト", "アクアマリン", "ダイヤモンド", "エメラルド", "ムーンストーン、真珠", "ルビー", "ペリドット", "サファイア", "オパール、トルマリン", "トパーズ", "トルコ石、タンザナイト")
End Function
こんなかんじ?
Function getBirthStone(日付 As Date)
Application.Volatile True
getBirthStone = WorksheetFunction.Choose(Month(日付), "ガーネット", "アメシスト", "アクアマリン", "ダイヤモンド", "エメラルド", "ムーンストーン、真珠", "ルビー", "ペリドット", "サファイア", "オパール、トルマリン", "トパーズ", "トルコ石、タンザナイト")
End Function
こんなかんじ?
824デフォルトの名無しさん (スププ Sd1f-zUcf)
2022/10/06(木) 22:32:10.00ID:wENRazb+d >>823
ありがとうございます。
ありがとうございます。
825デフォルトの名無しさん (ワッチョイ ff01-d1zO)
2022/10/06(木) 22:47:25.99ID:HCQdlFdq0 >>823
わざわざワークシート関数を呼ばなくてもVBAにもChoose関数あるよ
https://learn.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/choose-function
わざわざワークシート関数を呼ばなくてもVBAにもChoose関数あるよ
https://learn.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/choose-function
826デフォルトの名無しさん (ワッチョイ 6f8c-SQdC)
2022/10/06(木) 23:06:53.10ID:gOgPUvPm0 ほんとだw てへ
827800 (ワッチョイ 0666-Phf8)
2022/10/09(日) 17:09:18.30ID:Kilq6kjS0■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【速報】中国、水産物輸入停止と通達 「処理水」理由、日本政府へ ★5 [おっさん友の会★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 [ぐれ★]
- 【速報】 米大使「はっきりさせておこう、米国は尖閣諸島含め日本の防衛に全面コミット、中国がどうしようが変わらない」 [お断り★]
- 中国側が首相答弁の撤回要求、日本側拒否★7 [夜のけいちゃん★]
- 自民、経済対策で子ども1人に2万円給付へ 児童手当に上乗せ 所要額は約4000億円 [ぐれ★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★7 [ぐれ★]
- 【速報】高市首相「つい言い過ぎた」 存立危機事態の答弁について [237216734]
- 偏差値35大臣「英語話せない」 [834922174]
- 【ネトウヨ朗報】イギリスのトラス元首相、高市有事で高市早苗の支持を表明 [603416639]
- 【速報】中国、水産物輸入停止★2 [989870298]
- 【高市訃報】ホタテ業者、死亡😇😇😇 [573041775]
- 【悲報】斎藤元彦陣営のネット広報担当会社が投稿したnoteで騒然 ★950 [931948549]
