!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑同じ内容を2行貼り付けるナリ
ExcelのVBAに関する質問スレナリ
コード書き込みや作成依頼もOKナリ
※前スレ
Excel VBA 質問スレ Part70
https://mevius.5ch.net/test/read.cgi/tech/1616072923/
Excel VBA 質問スレ Part71
https://mevius.5ch.net/test/read.cgi/tech/1621914481/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
Excel VBA 質問スレ Part73
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 4668-xJJl)
2021/09/13(月) 07:29:59.47ID:GNx0xRRz0102デフォルトの名無しさん (アウアウウー Sa5b-ONKb)
2021/09/20(月) 18:30:41.29ID:aa1o0gq5a それコピーじゃなくてインポートしろよ
103デフォルトの名無しさん (ワッチョイ ff68-qDHA)
2021/09/20(月) 18:40:40.67ID:FEM4xU2r0 >>99
寂しいのか?
寂しいのか?
104デフォルトの名無しさん (ワッチョイ bf8c-xsW+)
2021/09/20(月) 21:44:55.52ID:djFT0hLf0 ボタンをインポート?
これも楽な方法があったらいいのにね
これも楽な方法があったらいいのにね
105デフォルトの名無しさん (ワッチョイ bf68-I2En)
2021/09/20(月) 21:51:19.19ID:lHEjG93V0 シート上のフォームコントロールを消す時って
・右クリックで選択
・コンテキストメニューをESCで消す
・切り取り、もしくは「deleteキー」
で合ってますか?
選択する時はF5キーのオブジェクトでもいいんですけど、
どちらにしろ右クリックで選択というのが何か気持ち悪い
・右クリックで選択
・コンテキストメニューをESCで消す
・切り取り、もしくは「deleteキー」
で合ってますか?
選択する時はF5キーのオブジェクトでもいいんですけど、
どちらにしろ右クリックで選択というのが何か気持ち悪い
106デフォルトの名無しさん (ワッチョイ bf68-I2En)
2021/09/20(月) 21:58:02.93ID:lHEjG93V0107デフォルトの名無しさん (ワッチョイ bf8c-xsW+)
2021/09/20(月) 21:58:44.81ID:djFT0hLf0 Ctrl+クリック
Delete
でいいんじゃない
Delete
でいいんじゃない
108デフォルトの名無しさん (ワッチョイ bf68-I2En)
2021/09/20(月) 22:10:20.73ID:lHEjG93V0 >>107
短縮できました、ありがとうございました
短縮できました、ありがとうございました
109デフォルトの名無しさん (アウアウアー Sa4f-1CsF)
2021/09/21(火) 16:59:19.72ID:6V+SG26ea private subのどのプロシージャーからでも、グローバル変数に入った値を取り出す方法として、
たとえばenvという標準モジュールを作り、そのなかで
public dim grobal_a as string
sub hoge
global_a = "aaaa"
end sub
とやっておき、
エクセルのブック起動と同時にこの初期値を入れておきたいので
thisWorkbookにcall hoge
ってやるの、普通?
たとえばenvという標準モジュールを作り、そのなかで
public dim grobal_a as string
sub hoge
global_a = "aaaa"
end sub
とやっておき、
エクセルのブック起動と同時にこの初期値を入れておきたいので
thisWorkbookにcall hoge
ってやるの、普通?
110デフォルトの名無しさん (ワッチョイ f732-KXEG)
2021/09/21(火) 18:19:02.19ID:Qqw1uu/Y0 >>106
標準モジュールのマクロですー…
標準モジュールのマクロですー…
111デフォルトの名無しさん (アウアウウー Sa5b-CdTX)
2021/09/21(火) 19:19:53.65ID:Bwxe0pHra >>110
シートに標準モジュールのやつを呼び出すSubを書いて、それをボタンから呼び出せばいい
シートに標準モジュールのやつを呼び出すSubを書いて、それをボタンから呼び出せばいい
112デフォルトの名無しさん (ワッチョイ d75f-EMRP)
2021/09/21(火) 20:47:40.27ID:bgKjXBpU0 >>109
まず変数のスコープ覚えようね
まず変数のスコープ覚えようね
113デフォルトの名無しさん (ワッチョイ ffda-qDHA)
2021/09/21(火) 21:06:44.82ID:0m2xZsmF0 >>109
普通は grobal_a と global_a の二つを一つにまとめると思う
普通は grobal_a と global_a の二つを一つにまとめると思う
114デフォルトの名無しさん (ワッチョイ bf68-I2En)
2021/09/21(火) 21:13:59.43ID:pV6hI0Vx0 >>110
全シートを選択してカットペーストでいけるだろ、と思ったら無理だった
VBEをVBAで動かすしか無いと思う。
https://jizilog.com/vba-modadd
http://officetanaka.net/excel/vba/vbe/07.htm
全シートを選択してカットペーストでいけるだろ、と思ったら無理だった
VBEをVBAで動かすしか無いと思う。
https://jizilog.com/vba-modadd
http://officetanaka.net/excel/vba/vbe/07.htm
115デフォルトの名無しさん (ワッチョイ bf68-I2En)
2021/09/21(火) 21:29:23.86ID:pV6hI0Vx0116デフォルトの名無しさん (ワッチョイ 9f4f-CwtL)
2021/09/22(水) 07:59:00.83ID:ucS/NBRX0 >>109
普通か普通ではないか、と言われれば普通ではないかなぁ。
ではどこが、と言われるとまずモジュール変数をグローバル指定しているところはPrivateにして外部から呼び出す用のプロパティに組み込む。これでどこかで値が変更されてもブレイクポイント仕掛けてどこで呼び出されて値が変更されたかを確認出来るようになる。
あと、初期化用の関数はPublic指定にしておかないと別のモジュールから呼び出せないよ。ThisWorkbookから呼び出すんでしょ?
普通か普通ではないか、と言われれば普通ではないかなぁ。
ではどこが、と言われるとまずモジュール変数をグローバル指定しているところはPrivateにして外部から呼び出す用のプロパティに組み込む。これでどこかで値が変更されてもブレイクポイント仕掛けてどこで呼び出されて値が変更されたかを確認出来るようになる。
あと、初期化用の関数はPublic指定にしておかないと別のモジュールから呼び出せないよ。ThisWorkbookから呼び出すんでしょ?
117デフォルトの名無しさん (アウアウクー MMcb-1CsF)
2021/09/22(水) 08:55:25.77ID:h9k7055fM ありがとうございます
118デフォルトの名無しさん (アウアウクー MMcb-1CsF)
2021/09/22(水) 08:56:23.60ID:h9k7055fM constやってみます
119デフォルトの名無しさん (アウアウウー Sa5b-JqwS)
2021/09/22(水) 11:22:09.41ID:QukUYkwCa120デフォルトの名無しさん (ワッチョイ f72f-fBlf)
2021/09/22(水) 15:13:16.34ID:XBxd6ZoY0 書籍「イヤンもう!最初からそう教えてくれればいいのに!ExcelVBAのプログラミングのツボとコツがゼッタイにわかる本」の評判はどうですか?買うか検討中なのですが。
121デフォルトの名無しさん (アウアウウー Sa5b-ONKb)
2021/09/22(水) 19:17:45.16ID:igHuaWyKa >>120
ゼッタイにわかる本系の口語調文章に抵抗がないラノベ好きには良いんじゃない?
ゼッタイにわかる本系の口語調文章に抵抗がないラノベ好きには良いんじゃない?
122デフォルトの名無しさん (アウアウウー Sa5b-ONKb)
2021/09/22(水) 19:18:09.88ID:igHuaWyKa >>120
ゼッタイにわかる本系の口語調文章に抵抗がない人には良いんじゃない?
ゼッタイにわかる本系の口語調文章に抵抗がない人には良いんじゃない?
123デフォルトの名無しさん (アウアウウー Sa5b-ONKb)
2021/09/22(水) 19:19:18.20ID:igHuaWyKa なにこのエラー去勢された
124デフォルトの名無しさん (JP 0Hfb-qDHA)
2021/09/22(水) 19:35:51.24ID:wAf2i/6rH >>120
人それぞれ印象が違うから、参考書は最初の2、3ページ立ち読みして自分で決めるのがいいよ
人それぞれ印象が違うから、参考書は最初の2、3ページ立ち読みして自分で決めるのがいいよ
125デフォルトの名無しさん (ワッチョイ bf68-I2En)
2021/09/22(水) 20:05:10.79ID:anCt84pS0 イヤンもう
って言うから検索したら特にそんな単語ついてないじゃないですか
って言うから検索したら特にそんな単語ついてないじゃないですか
126デフォルトの名無しさん (スフッ Sdbf-qDHA)
2021/09/22(水) 21:46:48.06ID:Th7N/2yOd127デフォルトの名無しさん (ワッチョイ bf68-I2En)
2021/09/22(水) 22:05:18.59ID:anCt84pS0 若い子が水着姿で教えるVBAの本なら簡単に死ぬほど売れるのでは?と思った
128デフォルトの名無しさん (ワッチョイ 775f-CdTX)
2021/09/22(水) 22:14:11.23ID:ER/2UqvV0 そもそもVBA自体がオッサン臭い言語
129デフォルトの名無しさん (ブーイモ MMdb-eTB/)
2021/09/22(水) 22:16:41.63ID:cVN8rRFZM そもそも5ch自体がオッサン臭い場所
130デフォルトの名無しさん (ブーイモ MMcf-nVhm)
2021/09/22(水) 22:21:20.29ID:RvuuvfBjM そもそもオッサンしかいない
131デフォルトの名無しさん (ワッチョイ d710-Lkdu)
2021/09/22(水) 23:01:12.21ID:LAnicbtO0 VBAとか作業記録してそれループするなり可変したりするなりちょっと直せば誰でも作れるからな
132デフォルトの名無しさん (アウアウウー Sa5b-ONKb)
2021/09/22(水) 23:14:36.78ID:jBUNeyMwa 「はたらくプログラミング 」
「高校生からはじめる プログラミング」
「メイクロックマン 史上最大のプログラミング」
「独学プログラマー Python言語の基本から仕事のやり方まで」
のようなアニメやゲームキャラやイケメンを
採用して若い子にアピールするとか
「乙女チック4Gamer」第267回:
「推しと学べるプログラミング」
初心者も学べるプログラミング学習ゲーム
とか
美少女×プログラミング学習×ソーシャルゲーム『コードガールこれくしょん』
とかゲームで呼び込み
恋のプログラミング~ダメ男の見分け方~ DVD-BOX2
のようなDVDを付録に付けてみたりとか
とかとにかくVBAもなんとか頑張って欲しい
「高校生からはじめる プログラミング」
「メイクロックマン 史上最大のプログラミング」
「独学プログラマー Python言語の基本から仕事のやり方まで」
のようなアニメやゲームキャラやイケメンを
採用して若い子にアピールするとか
「乙女チック4Gamer」第267回:
「推しと学べるプログラミング」
初心者も学べるプログラミング学習ゲーム
とか
美少女×プログラミング学習×ソーシャルゲーム『コードガールこれくしょん』
とかゲームで呼び込み
恋のプログラミング~ダメ男の見分け方~ DVD-BOX2
のようなDVDを付録に付けてみたりとか
とかとにかくVBAもなんとか頑張って欲しい
133デフォルトの名無しさん (ワッチョイ ff10-dWRi)
2021/09/22(水) 23:55:17.87ID:ToEmXEKY0 オレも1冊3000円くらいのVBAの本買ったわ
その本をキーボードの下奥に置くと角度が良い感じになるんだわ
手首が疲れないし、職場でもなんか「やってる」感がかもし出せるし、本当に買って良かったと思える1冊だったな
その本をキーボードの下奥に置くと角度が良い感じになるんだわ
手首が疲れないし、職場でもなんか「やってる」感がかもし出せるし、本当に買って良かったと思える1冊だったな
134デフォルトの名無しさん (アウアウウー Sa5b-hED7)
2021/09/23(木) 00:25:56.19ID:1QHTb9H7a 全国フェミニスト議員連盟が半泣き←いまここ
https://www.tokyo-np.co.jp/article/132305
https://www.tokyo-np.co.jp/article/132305
135デフォルトの名無しさん (ワッチョイ 9f4f-CwtL)
2021/09/23(木) 00:27:06.21ID:4aFmMHLK0 >>132
ん。
昔、EXCELVBAゲーム大作戦とかいう本が出てたよ。まぁVBAも昔からあるからゲーム作るのも先駆者がいたんだね。
けど、結局難しいというか、お仕事で覚えることとベクトルが違うんだよ。1/60秒単位で押されているキーの値読み取って、キャラクターや地形描いてその当たり判定行なったりね。
まぁ暇でそういうの作ってみたいというのにはいいかもだけど、お仕事でVBA使うのの興味を持つために、というのにはちょっと重いかもね。
ん。
昔、EXCELVBAゲーム大作戦とかいう本が出てたよ。まぁVBAも昔からあるからゲーム作るのも先駆者がいたんだね。
けど、結局難しいというか、お仕事で覚えることとベクトルが違うんだよ。1/60秒単位で押されているキーの値読み取って、キャラクターや地形描いてその当たり判定行なったりね。
まぁ暇でそういうの作ってみたいというのにはいいかもだけど、お仕事でVBA使うのの興味を持つために、というのにはちょっと重いかもね。
136デフォルトの名無しさん (ワッチョイ bf68-I2En)
2021/09/23(木) 00:56:08.87ID:O9y54sVl0137デフォルトの名無しさん (ワッチョイ bf68-I2En)
2021/09/23(木) 00:59:12.19ID:O9y54sVl0 vbaでゲームは基本的にかなりめんどくさい
メインのループ処理がキツイ
定期的に処理をエクセルに返してあげないと色々と不具合が起きる
曲芸でなければvbaで作るのは絶対に避けたほうが良い
メインのループ処理がキツイ
定期的に処理をエクセルに返してあげないと色々と不具合が起きる
曲芸でなければvbaで作るのは絶対に避けたほうが良い
138デフォルトの名無しさん (ワッチョイ 9fad-qDHA)
2021/09/23(木) 09:34:39.93ID:MTBJM7920 2つあるフレームの位置を調整していたら、
フレームAをフレームBの中にドラッグしてしまったらしく、
2つのフレームが一緒になってしまいました。
プロパティウィンドウを見ると、フレームAはまだ存在するのですが、
画面上にはフレームBしか表示されていないため、Aを選択することができず、
AをBから分離することができません。
AのLeftやTopを変更してみましたが、画面上に変化はありませんでした。
何かいい解決法があれば教えてください。
フレームAをフレームBの中にドラッグしてしまったらしく、
2つのフレームが一緒になってしまいました。
プロパティウィンドウを見ると、フレームAはまだ存在するのですが、
画面上にはフレームBしか表示されていないため、Aを選択することができず、
AをBから分離することができません。
AのLeftやTopを変更してみましたが、画面上に変化はありませんでした。
何かいい解決法があれば教えてください。
139デフォルトの名無しさん (ワッチョイ 9fad-qDHA)
2021/09/23(木) 09:39:09.54ID:MTBJM7920 自己解決しました。
@プロパティウィンドウでプルダウンからフレームAを選択する。
ACtrl+[A]で全選択した後、Ctrl+[X]で切り取り状態にする。
BフレームBのエリア外にマウスカーソルを持っていき、Ctrl+[V]で貼り付ける。
@プロパティウィンドウでプルダウンからフレームAを選択する。
ACtrl+[A]で全選択した後、Ctrl+[X]で切り取り状態にする。
BフレームBのエリア外にマウスカーソルを持っていき、Ctrl+[V]で貼り付ける。
140デフォルトの名無しさん (ワッチョイ bf68-I2En)
2021/09/23(木) 11:52:58.11ID:O9y54sVl0 おめ〜^^
141デフォルトの名無しさん (アウアウウー Sa5b-ONKb)
2021/09/23(木) 13:11:17.06ID:cmFu96z6a >>139
たった5分も考える事が出来んのか
たった5分も考える事が出来んのか
142デフォルトの名無しさん (テテンテンテン MM8f-vJdV)
2021/09/23(木) 13:48:48.21ID:tEWlRRfOM せっかく解決策書いてくれてるのにイチャモンつけるバカって何を考えてるんだろ…
143デフォルトの名無しさん (ワッチョイ ff68-qDHA)
2021/09/23(木) 13:53:17.23ID:DsLS3pBM0 ただの寂しがり屋の暇つぶしとか
144デフォルトの名無しさん (ブーイモ MMfb-nVhm)
2021/09/23(木) 13:59:57.49ID:5gST2jZHM 黙って去るやつよりよっぽどいいんだが
145デフォルトの名無しさん (オッペケ Srcb-C0eV)
2021/09/23(木) 14:03:41.04ID:F4JAOFkVr 配列からグラフを書いたときってデータ数の上限はありますか?
その場合どのように対処すれば良いですか?
その場合どのように対処すれば良いですか?
146デフォルトの名無しさん (ワッチョイ 9f02-IhC7)
2021/09/23(木) 14:08:33.29ID:KMctW7zL0147デフォルトの名無しさん (ブーイモ MMbf-nVhm)
2021/09/23(木) 14:45:47.29ID:gN04ENXIM >>145
その場合はデータをコンパクトにまとめるしかなくね
その場合はデータをコンパクトにまとめるしかなくね
148デフォルトの名無しさん (テテンテンテン MM8f-vJdV)
2021/09/23(木) 14:47:47.80ID:dUOklB1+M149デフォルトの名無しさん (ワッチョイ bf8c-xsW+)
2021/09/23(木) 15:12:01.32ID:AtVLca4O0 系列数に上限がいかにもありそう 255とか
150デフォルトの名無しさん (ワッチョイ bf8c-xsW+)
2021/09/23(木) 15:22:04.38ID:AtVLca4O0151デフォルトの名無しさん (ワッチョイ ffda-qDHA)
2021/09/23(木) 18:38:01.80ID:rxtBh7Jj0152デフォルトの名無しさん (オッペケ Srcb-C0eV)
2021/09/23(木) 18:52:18.65ID:c0lh6Lzfr ごめんなさい
セルからではなく配列から直接グラフを読み込むときの話です。
自分の場合配列から散布図書いてて
データ数が15000?あたりから表示されなくなったので
セルからではなく配列から直接グラフを読み込むときの話です。
自分の場合配列から散布図書いてて
データ数が15000?あたりから表示されなくなったので
153デフォルトの名無しさん (ワッチョイ ffda-qDHA)
2021/09/23(木) 20:46:47.80ID:rxtBh7Jj0 だからメモリ少ないんじゃね
154デフォルトの名無しさん (ワッチョイ c23d-4IKK)
2021/09/24(金) 16:28:38.47ID:GLO6/yx90 VBAで、リボンを常に表示させるてことできるんですか?
ググると
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"", True)"
ていうのが出てくるんですが、
”タブとコマンドの表示”ていう状態にしたい。
ググると
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"", True)"
ていうのが出てくるんですが、
”タブとコマンドの表示”ていう状態にしたい。
155デフォルトの名無しさん (ワッチョイ 175f-n+Jo)
2021/09/24(金) 18:53:45.39ID:towOKsyE0 If Application.CommandBars.GetPressedMso("MinimizeRibbon") = True Then
Application.CommandBars.ExecuteMso "MinimizeRibbon"
End If
Application.CommandBars.ExecuteMso "MinimizeRibbon"
End If
156デフォルトの名無しさん (ワッチョイ c23d-4IKK)
2021/09/25(土) 02:37:13.36ID:p3qnNTxE0157デフォルトの名無しさん (ワッチョイ 7f7c-q3+A)
2021/09/25(土) 06:01:58.81ID:A2HuAdJq0 なんでだと思う?
158デフォルトの名無しさん (ワッチョイ 1e68-wYsx)
2021/09/25(土) 07:24:00.70ID:i7f0lbxJ0 しっかりと自分で考える事が大事!向上心をもって勉強しよう!
159デフォルトの名無しさん (ワッチョイ b35f-8sCx)
2021/09/25(土) 07:50:31.86ID:xUBmE3KO0 ひろゆきのクラスモジュールの説明は的確で分かりやすかった
160デフォルトの名無しさん (ワッチョイ b35f-8sCx)
2021/09/25(土) 07:51:02.02ID:xUBmE3KO0 クラスモジュールというよりはオブジェクト指向か
161デフォルトの名無しさん (ササクッテロラ Sp47-WaYq)
2021/09/25(土) 13:59:25.45ID:QZokVoY5p このスレにはクラスとかオブジェクト指向とかいうと、ファビョって「マウント取りに来たー!!」とか騒ぐじじいがいるから気をつけた方がいいぞ
162デフォルトの名無しさん (ブーイモ MM0e-ml4o)
2021/09/25(土) 14:23:54.16ID:ADwaIx4kM 5chはじじいの巣窟ですよ。
子供は他所で遊んだ方が良いですよ。
子供は他所で遊んだ方が良いですよ。
163デフォルトの名無しさん (アウアウキー Saef-nXzz)
2021/09/25(土) 15:09:26.96ID:kjOWSdg4a >>161
聞く方もじじいだし
聞く方もじじいだし
164デフォルトの名無しさん (ササクッテロレ Sp47-2mxq)
2021/09/25(土) 22:54:03.42ID:/8ShLWKPp エクセル詳しい方にご質問。
保護シートの「オートフィルター使用」にチェックつけてる状態で、
Range(Cells(1,1),Cells(1,5)).AutoFilterを実行すると保護解除しろと言われるのですが、原因わかりますか?
Rangeで指定しているセル範囲の保護を外しても言われる始末。
オートフィルターの使用を許可すりゃ通るもんだと思ってました。
見えない仕組みとか、基本的な仕様を見逃してるんかなぁ…
保護シートの「オートフィルター使用」にチェックつけてる状態で、
Range(Cells(1,1),Cells(1,5)).AutoFilterを実行すると保護解除しろと言われるのですが、原因わかりますか?
Rangeで指定しているセル範囲の保護を外しても言われる始末。
オートフィルターの使用を許可すりゃ通るもんだと思ってました。
見えない仕組みとか、基本的な仕様を見逃してるんかなぁ…
165デフォルトの名無しさん (ワッチョイ e32f-6iP1)
2021/09/25(土) 23:52:15.96ID:wPvtJ2EG0 >>164
オートフィルターのオンオフはできないのが仕様だな
https://support.microsoft.com/ja-jp/office/%e3%83%af%e3%83%bc%e3%82%af%e3%82%b7%e3%83%bc%e3%83%88%e3%82%92%e4%bf%9d%e8%ad%b7%e3%81%99%e3%82%8b-3179efdb-1285-4d49-a9c3-f4ca36276de6?ns=excel&version=90&syslcid=1041&uilcid=1041&appver=zxl900&helpid=21290&ui=ja-jp&rs=ja-jp&ad=jp
注: ユーザーは、この設定に関係なく、保護されたワークシートでオートフィルターを適用または削除できません。
オートフィルターのオンオフはできないのが仕様だな
https://support.microsoft.com/ja-jp/office/%e3%83%af%e3%83%bc%e3%82%af%e3%82%b7%e3%83%bc%e3%83%88%e3%82%92%e4%bf%9d%e8%ad%b7%e3%81%99%e3%82%8b-3179efdb-1285-4d49-a9c3-f4ca36276de6?ns=excel&version=90&syslcid=1041&uilcid=1041&appver=zxl900&helpid=21290&ui=ja-jp&rs=ja-jp&ad=jp
注: ユーザーは、この設定に関係なく、保護されたワークシートでオートフィルターを適用または削除できません。
166デフォルトの名無しさん (ワッチョイ 12ad-zD50)
2021/09/26(日) 00:17:38.53ID:BPwZjS350 とあるフォルダへのショートカットを作成する方法を調べたところ、
コーディング前に、
>参照設定は、VBA画面→ツールメニュー→参照設定で「Windows Script Host Object Model」を選択します。
>これでWshShellクラスとWshShortcutクラスを利用できるようになります。
という記述がありました。
それで作れそうですが、
作った.xlsmファイルを他人に渡した場合、
その相手が上記の参照設定をしていない環境だったとしても、ショートカットの作成は行えますか?
コーディング前に、
>参照設定は、VBA画面→ツールメニュー→参照設定で「Windows Script Host Object Model」を選択します。
>これでWshShellクラスとWshShortcutクラスを利用できるようになります。
という記述がありました。
それで作れそうですが、
作った.xlsmファイルを他人に渡した場合、
その相手が上記の参照設定をしていない環境だったとしても、ショートカットの作成は行えますか?
167デフォルトの名無しさん (ササクッテロレ Sp47-2mxq)
2021/09/26(日) 00:44:49.64ID:vU9Y5LAHp >>165
ご回答頂きありがとうございます。
こういう基本的な説明くらい最初から見とけって話でしたね。
しかし、シートの保護とAutoFilterを両立できないとは、痒いところに手が届かない仕様ですな。
ご回答頂きありがとうございます。
こういう基本的な説明くらい最初から見とけって話でしたね。
しかし、シートの保護とAutoFilterを両立できないとは、痒いところに手が届かない仕様ですな。
168デフォルトの名無しさん (ワッチョイ 175f-MM2B)
2021/09/26(日) 01:37:23.16ID:O844yIU50 >>167
オートフィルターON/OFFと同時にシートの保護/解除も書いてしまえばいいんでないの?
オートフィルターON/OFFと同時にシートの保護/解除も書いてしまえばいいんでないの?
169デフォルトの名無しさん (ワッチョイ 12ad-zD50)
2021/09/26(日) 01:39:32.52ID:BPwZjS350 >>166
自己解決しました。
参照設定を変更しなくてもショートカットの作成は可能でした。
そちらの方法にします。
https://excel-ubara.com/excelvba4/EXCEL293.html
自己解決しました。
参照設定を変更しなくてもショートカットの作成は可能でした。
そちらの方法にします。
https://excel-ubara.com/excelvba4/EXCEL293.html
170デフォルトの名無しさん (ワッチョイ 12ad-zD50)
2021/09/26(日) 01:46:25.94ID:BPwZjS350 ちなみに、
@参照設定で「Windows Script Host Object Model」をONにする。
AWshShellクラスとWshShortcutクラスを利用してコーディングする。
Bプログラムを実行する。
Cショートカットの作成に成功する。
D参照設定で「Windows Script Host Object Model」をOFFにする。
Eプログラムを実行する。
Fショートカットの作成に失敗する。(Aの中の定義について「ユーザ定義型は定義されていません」のエラー)
となったので、
>>166については、相手にも参照設定をしてもらわないとショートカットの作成は行えない、ということだと思います。
@参照設定で「Windows Script Host Object Model」をONにする。
AWshShellクラスとWshShortcutクラスを利用してコーディングする。
Bプログラムを実行する。
Cショートカットの作成に成功する。
D参照設定で「Windows Script Host Object Model」をOFFにする。
Eプログラムを実行する。
Fショートカットの作成に失敗する。(Aの中の定義について「ユーザ定義型は定義されていません」のエラー)
となったので、
>>166については、相手にも参照設定をしてもらわないとショートカットの作成は行えない、ということだと思います。
171デフォルトの名無しさん (ササクッテロレ Sp47-2mxq)
2021/09/26(日) 01:51:41.55ID:vU9Y5LAHp172デフォルトの名無しさん (ワッチョイ e32f-pveB)
2021/09/26(日) 15:56:59.18ID:ynzNBMLj0173デフォルトの名無しさん (アウアウクー MM87-b517)
2021/09/26(日) 18:28:19.91ID:6z2Q/VJPM 二次元配列の第三カラムが重複していたらレコードまるごと排除して、かつ排除された分のレコードを別シートに転記することってできます?
連想配列に入れておけば重複してたらわかるようになるけど、そういう方法ってまとも?
連想配列に入れておけば重複してたらわかるようになるけど、そういう方法ってまとも?
174デフォルトの名無しさん (ワッチョイ 3710-Lx95)
2021/09/26(日) 18:29:58.19ID:Fsa0c3oL0 第三限定なの?
175デフォルトの名無しさん (ワッチョイ d6da-zD50)
2021/09/26(日) 19:28:17.19ID:HYuUGx6O0 できるかどうかではなく、そういう処理を作りたいんじゃないの?
176デフォルトの名無しさん (ブーイモ MM0e-MTek)
2021/09/26(日) 21:42:42.58ID:hcQxkCQHM 配列とレコードとシートの区別ない人だね
177デフォルトの名無しさん (ワッチョイ 0349-PXWQ)
2021/09/26(日) 23:35:14.87ID:ISHRJ32V0 そういう方法で重複チェックをしたことはあるけど
それがまともかと聞かれるとわからんなぁ
それがまともかと聞かれるとわからんなぁ
178デフォルトの名無しさん (ワッチョイ e32f-pveB)
2021/09/27(月) 17:52:26.41ID:wG/2iXK70 配列は要素数が増減するものには向いてない
が、まあいろいろ頑張ればできる
連想配列でわかるのは、入れようとしたときに重複するかどうかで、そもそも重複したものは入っていないだろ
が、まあいろいろ頑張ればできる
連想配列でわかるのは、入れようとしたときに重複するかどうかで、そもそも重複したものは入っていないだろ
179デフォルトの名無しさん (ワッチョイ 1e68-wYsx)
2021/09/27(月) 21:07:52.71ID:9JOCRyj50 >配列は要素数が増減するものには向いてない
「vbaの」配列な
他の言語にはpushとか色々便利なものがあるんやで
「vbaの」配列な
他の言語にはpushとか色々便利なものがあるんやで
180デフォルトの名無しさん (ワッチョイ b35f-AXm8)
2021/09/27(月) 21:09:45.06ID:1fIlBTl00 Excelにはセルっていう使いやすい2次元配列があるからな
速度はご愛嬌
速度はご愛嬌
181デフォルトの名無しさん (ワッチョイ 1e68-wYsx)
2021/09/27(月) 23:17:35.36ID:9JOCRyj50 シート入れれば三次元やぞ
182デフォルトの名無しさん (ドコグロ MM33-c1VD)
2021/09/28(火) 06:06:35.41ID:NhFpYAOsM >>179
> 他の言語にはpushとか色々便利なものがあるんやで
スクリプト言語とかだろそれ
言語自体の機能として配列のサイズを変えられる言語はそんなに多くないよ
そもそもVBAはその多くない言語に含まれるし
> 他の言語にはpushとか色々便利なものがあるんやで
スクリプト言語とかだろそれ
言語自体の機能として配列のサイズを変えられる言語はそんなに多くないよ
そもそもVBAはその多くない言語に含まれるし
183デフォルトの名無しさん (ワッチョイ 124f-WaYq)
2021/09/28(火) 11:35:58.86ID:mkxQja700 無いものねだりしてもしょうがない
そもそも他言語やっててVBAやった場合
ない機能をどうやって実装するか考えるのが
醍醐味なんだから
そもそも他言語やっててVBAやった場合
ない機能をどうやって実装するか考えるのが
醍醐味なんだから
184デフォルトの名無しさん (ワッチョイ 92ad-mV7G)
2021/09/28(火) 12:14:47.38ID:fFhZgLlN0185デフォルトの名無しさん (ドコグロ MM33-c1VD)
2021/09/28(火) 13:45:05.92ID:T/P4fEdFM186デフォルトの名無しさん (ブーイモ MMde-MTek)
2021/09/28(火) 15:11:07.44ID:8+n9QyO8M 今の時代、メモリなんてたくさん確保しておけばよくね
187デフォルトの名無しさん (ワッチョイ 6f8e-emG0)
2021/09/28(火) 15:43:04.78ID:ZLV/p08A0 「たくさん」と言ったってワークステーションやサーバ系のハードウェアでない限りせいぜい64GBか128GBが上限では?
188デフォルトの名無しさん (ブーイモ MM0e-MTek)
2021/09/28(火) 15:46:57.39ID:9IVurO/LM お、おう
189デフォルトの名無しさん (ワッチョイ 4be5-XWMK)
2021/09/28(火) 16:43:48.67ID:yyyanN8B0 64KBまでだよ
190デフォルトの名無しさん (ワッチョイ 4fac-ewuB)
2021/09/28(火) 16:48:32.26ID:vws8rDV40 VBA(Excel)にそんなメモリ使わせたらヒヤヒヤしちゃう
191デフォルトの名無しさん (ワッチョイ 96bb-PL4X)
2021/09/28(火) 17:35:37.46ID:Fgmzo9M90 long配列の下位16ビットにデータ格納されている
long[0],[1]の下位16ビットを結合するとsingleの値となる
(要はsingleが16ビット分割されてlong型に格納されている)
こんなデータが大量に格納されるんですが、上手く結合して型変換する方法がわかりません。。
val("&H" & hex(long(1)) & hex(long(0)))
で32ビット結合はできましたが、その後の暗黙的な変換なしでsingleに変更するにはどうするのが良いでしょうか?
long[0],[1]の下位16ビットを結合するとsingleの値となる
(要はsingleが16ビット分割されてlong型に格納されている)
こんなデータが大量に格納されるんですが、上手く結合して型変換する方法がわかりません。。
val("&H" & hex(long(1)) & hex(long(0)))
で32ビット結合はできましたが、その後の暗黙的な変換なしでsingleに変更するにはどうするのが良いでしょうか?
192デフォルトの名無しさん (ワッチョイ 0349-PXWQ)
2021/09/28(火) 18:37:14.39ID:nfdxFkKa0 リアルタイムにやる必要が無いならバイナリでファイルに書いて
Singleで読むとか出来そうな気がする。
同じ考え方でADODB.stremも使えそう。
Singleで読むとか出来そうな気がする。
同じ考え方でADODB.stremも使えそう。
193デフォルトの名無しさん (スップ Sd32-zD50)
2021/09/28(火) 20:20:03.83ID:chK2kmIxd >>191
禁じ手だけどユーザー定義型とLSetで変数の中身を型変換せずに直接コピーできる
LongをSingleにコピーする例
Type TypeLong
varLong As Long
End Type
Type TypeSingle
varSingle As Single
End Type
Sub Long2Single()
Dim myLong As TypeLong
Dim mySingle As TypeSingle
LSet mySingle = myLong
End Sub
禁じ手だけどユーザー定義型とLSetで変数の中身を型変換せずに直接コピーできる
LongをSingleにコピーする例
Type TypeLong
varLong As Long
End Type
Type TypeSingle
varSingle As Single
End Type
Sub Long2Single()
Dim myLong As TypeLong
Dim mySingle As TypeSingle
LSet mySingle = myLong
End Sub
194デフォルトの名無しさん (ワッチョイ 124f-E55q)
2021/09/28(火) 21:06:13.76ID:mkxQja700 >>191
ん?
今一つよく分からんけど、CSng使って明示的に変換すればいいんじゃないの?
Sub Convert()
Dim originalValue(1) As Long
Dim convertSingle As Single
originalValue(0) = 1
originalValue(1) = 3
convertSingle = CSng(CDbl(originalValue(0) And 65535)) * 65536 + (originalValue(1) And 65535)
Debug.Print convertSingle
End Sub
こんな感じに。
オーバーフローして表示しきれなくなった分は知らんけど。
ん?
今一つよく分からんけど、CSng使って明示的に変換すればいいんじゃないの?
Sub Convert()
Dim originalValue(1) As Long
Dim convertSingle As Single
originalValue(0) = 1
originalValue(1) = 3
convertSingle = CSng(CDbl(originalValue(0) And 65535)) * 65536 + (originalValue(1) And 65535)
Debug.Print convertSingle
End Sub
こんな感じに。
オーバーフローして表示しきれなくなった分は知らんけど。
195デフォルトの名無しさん (ワッチョイ 124f-E55q)
2021/09/28(火) 21:56:37.27ID:mkxQja700 おっと、すまんこ
括弧の位置間違えてた
Option Explicit
Sub Convert()
Dim originalValue(1) As Long
Dim convertSingle As Single
originalValue(0) = 7
originalValue(1) = 15
convertSingle = CSng(CDbl(originalValue(0) And 65535) * 65536 + (originalValue(1) And 65535))
Debug.Print convertSingle
End Sub
こうかな。
因みにビット扱っているなら説明すると失礼に当たるかもだけど、
65535は16進で&HFFFF、65536は16進で&H10000ね。
ANDは論理演算子ではなくてビット演算子。
括弧の位置間違えてた
Option Explicit
Sub Convert()
Dim originalValue(1) As Long
Dim convertSingle As Single
originalValue(0) = 7
originalValue(1) = 15
convertSingle = CSng(CDbl(originalValue(0) And 65535) * 65536 + (originalValue(1) And 65535))
Debug.Print convertSingle
End Sub
こうかな。
因みにビット扱っているなら説明すると失礼に当たるかもだけど、
65535は16進で&HFFFF、65536は16進で&H10000ね。
ANDは論理演算子ではなくてビット演算子。
196デフォルトの名無しさん (ワッチョイ e32f-pveB)
2021/09/29(水) 02:45:23.84ID:DNRsGaHg0197デフォルトの名無しさん (ワッチョイ e32f-pveB)
2021/09/29(水) 02:50:45.14ID:DNRsGaHg0 とりあえず作ってみた
エンディアンの呪いがかかってても知らんw
Type TypeQByte
varByte1 As Byte
varByte2 As Byte
varByte3 As Byte
varByte4 As Byte
End Type
Type TypeLong
varLong As Long
End Type
Type TypeSingle
varSingle As Single
End Type
Function WLong2Single(ByVal long1 As Long, ByVal long2 As Long) As Single
Dim myLong1 As TypeLong
Dim myLong2 As TypeLong
Dim myQByte As TypeQByte
Dim tmpQByte As TypeQByte
Dim mySingle As TypeSingle
myLong1.varLong = long1
myLong2.varLong = long2
LSet tmpQByte = myLong1
myQByte.varByte1 = tmpQByte.varByte3
myQByte.varByte2 = tmpQByte.varByte4
LSet tmpQByte = myLong2
myQByte.varByte3 = tmpQByte.varByte3
myQByte.varByte4 = tmpQByte.varByte4
LSet mySingle = myQByte
WLong2Single = mySingle.varSingle
End Function
エンディアンの呪いがかかってても知らんw
Type TypeQByte
varByte1 As Byte
varByte2 As Byte
varByte3 As Byte
varByte4 As Byte
End Type
Type TypeLong
varLong As Long
End Type
Type TypeSingle
varSingle As Single
End Type
Function WLong2Single(ByVal long1 As Long, ByVal long2 As Long) As Single
Dim myLong1 As TypeLong
Dim myLong2 As TypeLong
Dim myQByte As TypeQByte
Dim tmpQByte As TypeQByte
Dim mySingle As TypeSingle
myLong1.varLong = long1
myLong2.varLong = long2
LSet tmpQByte = myLong1
myQByte.varByte1 = tmpQByte.varByte3
myQByte.varByte2 = tmpQByte.varByte4
LSet tmpQByte = myLong2
myQByte.varByte3 = tmpQByte.varByte3
myQByte.varByte4 = tmpQByte.varByte4
LSet mySingle = myQByte
WLong2Single = mySingle.varSingle
End Function
198デフォルトの名無しさん (スップ Sd52-zD50)
2021/09/29(水) 03:32:54.18ID:hT//j47fd VBAには共用体もポインタもないから、
LSetでメモリの内容をコピー
バイナリファイル経由
IEEEの内部フォーマットに合わせてゴリゴリ計算
ぐらいしか思い付かん
この中ではLsetが一番シンプルだし高速
上位、下位の順番が分からんから適当に書くけど、基本的にはこんな感じ
MyLong = Long0 * &h10000 + Long1
Lset MySingle = MyLong
C#とか使えばもっと簡単にできるんで、そもそもこの作業はVBAに向いてない
LSetでメモリの内容をコピー
バイナリファイル経由
IEEEの内部フォーマットに合わせてゴリゴリ計算
ぐらいしか思い付かん
この中ではLsetが一番シンプルだし高速
上位、下位の順番が分からんから適当に書くけど、基本的にはこんな感じ
MyLong = Long0 * &h10000 + Long1
Lset MySingle = MyLong
C#とか使えばもっと簡単にできるんで、そもそもこの作業はVBAに向いてない
199デフォルトの名無しさん (ワッチョイ e32f-pveB)
2021/09/29(水) 04:17:58.49ID:DNRsGaHg0200デフォルトの名無しさん (スプッッ Sdea-zD50)
2021/09/29(水) 05:23:25.92ID:HULqg2bxd 符号ビット対策
64bit限定ならLongLong型を経由すればもっと簡単になるのか?どう書けばいいのかわからんけど
Dim MSB As Long
MSB = (Long0 And &H8000) And &H80000000
MyLong = MSB Or ((Long0 And &H7FFF) * &H10000 + Long1)
64bit限定ならLongLong型を経由すればもっと簡単になるのか?どう書けばいいのかわからんけど
Dim MSB As Long
MSB = (Long0 And &H8000) And &H80000000
MyLong = MSB Or ((Long0 And &H7FFF) * &H10000 + Long1)
201デフォルトの名無しさん (スフッ Sd32-zD50)
2021/09/29(水) 05:43:02.15ID:ia9ebpqvd 訂正
MSB = ((Long0 And &H8000) <> 0) And &H80000000
MSB = ((Long0 And &H8000) <> 0) And &H80000000
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- パワフル女性世界3位に高市首相 米誌フォーブス選出 [蚤の市★]
- テレ朝本社から社外スタッフの男性が転落し死亡 テレビ朝日がコメント [ひかり★]
- 【米FRB】0.25%利下げ決定 3会合連続、雇用下支え [蚤の市★]
- アイヌ民族の「戸籍簿」がヤフオクで落札 団体「人権無視」と憤り [蚤の市★]
- 【S.RIDE】「忘年会の幹事ずるい」 ソニー系配車アプリの広告が物議…… 運営が謝罪「配慮に欠ける不適切な表現」掲出終了に [ぐれ★]
- 【維新→自民党・旧安倍派】元衆院議員の妻を逮捕、コロナ補助金5000万円詐取疑い 名古屋地検 [ぐれ★]
- スーパーで売ってる鍋出汁で最強なのって結局
- 【画像】東京都民「助けて!満員電車もう無理いいぃぃいいぃぃぃいいいいいぃ😭」!!!! [732289945]
- 【堂上隼人】ソフトバンク幹部「よし更生してる」→現在までに逮捕12回、レイプ被害者15人
- 【悲報】教育ママ「ギャオオオオオン!息子が大麻吸ってるのお!!」⇨中3の息子を警察に突き出し全てを終わらせる [455031798]
- 【誰食】おせち料理で確実にゴミ箱行きになる食材1位、「黒豆」 [748563222]
- ミラブルシャワーヘッド買ったった
