探検
Excel VBA 質問スレ Part51
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (スププ Sd4a-O827)
2017/11/08(水) 11:26:30.13ID:+KUB1/9hdスレ立ての際は一行目に
!extend:checked:vvvvv:1000:512
と入れてスレ立てして下さい
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※関連スレ
VBAなんでも質問スレ Part2
http://mevius.2ch.net/test/read.cgi/tech/1432173164/
Access VBA 質問スレ Part1
http://mevius.2ch.net/test/read.cgi/tech/1328536426/
Excel総合相談所 126
https://mevius.2ch.net/test/read.cgi/bsoft/1496487719/
※前スレ
Excel VBA 質問スレ Part50
http://mevius.2ch.net/test/read.cgi/tech/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
509デフォルトの名無しさん (アウアウカー Sa6f-tkV0)
2017/12/15(金) 00:26:50.88ID:Ma3k2IENa GetOpenFilenameはメモ帳のファイル名を取って来ることも出来る。
Wordのファイル名を取って来ることも出来る。
Workbooks.Openで開けないファイル名ということも有るし、Workbooks.Openで開けるファイル名だとしてもExcelで開かなければならないということも無い。
Wordのファイル名を取って来ることも出来る。
Workbooks.Openで開けないファイル名ということも有るし、Workbooks.Openで開けるファイル名だとしてもExcelで開かなければならないということも無い。
510デフォルトの名無しさん (ワッチョイ d2af-8sno)
2017/12/15(金) 00:27:25.61ID:qta4Ddk+0511デフォルトの名無しさん (ワッチョイ d2af-8sno)
2017/12/15(金) 00:28:29.79ID:qta4Ddk+0512デフォルトの名無しさん (ワッチョイ d2af-8sno)
2017/12/15(金) 00:32:05.55ID:qta4Ddk+0 >>496
つまりだ
君が言いたいのは(要約しないとダメなのかよ、、、)
application.GetOpenfilenameだと文字列として返ってくる
workbook型には文字列は入らない
こういうことが言いたいのね?
つまりだ
君が言いたいのは(要約しないとダメなのかよ、、、)
application.GetOpenfilenameだと文字列として返ってくる
workbook型には文字列は入らない
こういうことが言いたいのね?
513デフォルトの名無しさん (アウアウカー Sa6f-tkV0)
2017/12/15(金) 00:33:26.47ID:JSBwNcqSa >>508
それはコンピューターというものをまるで理解出来ていないからそうなる。
厳密には
strFile = Application.GetOpenFilename
が実行されたからstrFileはファイル名だろとコンピューターに言っても、コンピューターは違います、文字列です。と言う。
strFileに入っている文字列のファイルは有るのかと問えば、有ります。と言う。
じゃあ、strFileはファイル名じゃねえかと問えば、違います、文字列です。と言う。
コンピュ−ターは人間が考えるような意味を理解しない。
定義通り動くだけ。
それはコンピューターというものをまるで理解出来ていないからそうなる。
厳密には
strFile = Application.GetOpenFilename
が実行されたからstrFileはファイル名だろとコンピューターに言っても、コンピューターは違います、文字列です。と言う。
strFileに入っている文字列のファイルは有るのかと問えば、有ります。と言う。
じゃあ、strFileはファイル名じゃねえかと問えば、違います、文字列です。と言う。
コンピュ−ターは人間が考えるような意味を理解しない。
定義通り動くだけ。
514デフォルトの名無しさん (ワッチョイ d2af-8sno)
2017/12/15(金) 00:35:45.56ID:qta4Ddk+0515デフォルトの名無しさん (アウアウカー Sa6f-tkV0)
2017/12/15(金) 00:39:33.42ID:OGmesrFEa >>512
その理解で良い。
その理解で良い。
516デフォルトの名無しさん (ワッチョイ d2af-8sno)
2017/12/15(金) 00:41:12.92ID:qta4Ddk+0517デフォルトの名無しさん (ワッチョイ d2af-8sno)
2017/12/15(金) 00:42:06.72ID:qta4Ddk+0 補足するとworkbook.Openで返ってくる(開く)=workbook型ということね
518デフォルトの名無しさん (アウアウカー Sa6f-tkV0)
2017/12/15(金) 00:42:07.75ID:W4xtzKqva519デフォルトの名無しさん (アークセー Sxc7-Zhdx)
2017/12/15(金) 00:57:45.39ID:2M4lhz74x520デフォルトの名無しさん (アークセー Sxc7-Zhdx)
2017/12/15(金) 01:03:08.36ID:2M4lhz74x メゾット君もだんだん自分の頭の悪さを自覚してきてるみたいだし、あと二日以内には恥ずかしい捨て台詞を残して消える運命かな
レス保存したからいつでも再放送出来るけどなwww
レス保存したからいつでも再放送出来るけどなwww
521デフォルトの名無しさん (ワッチョイ de9d-Nij6)
2017/12/15(金) 01:23:44.47ID:IJmI7Oq80522デフォルトの名無しさん (ワッチョイ b7a5-nSRQ)
2017/12/15(金) 01:24:37.63ID:JMZCHg3W0 多分Excel VBA入門的な記事を読み進めればすぐに理解できたと思うんですけど
勉強の進め方が下手くそすぎる
勉強の進め方が下手くそすぎる
523デフォルトの名無しさん (ワッチョイ d2af-8sno)
2017/12/15(金) 09:26:34.27ID:qta4Ddk+0 で、この型をしっかりと説明してるのはどこだ?
524デフォルトの名無しさん (ワッチョイ d2af-8sno)
2017/12/15(金) 09:27:43.96ID:qta4Ddk+0 URLでもなんでも貼ってよ
525デフォルトの名無しさん (ワッチョイ d2af-8sno)
2017/12/15(金) 10:46:54.06ID:qta4Ddk+0 ちなみにさ
VBAってなんでメンテナンスがいるの?
コードを直接弄るわけじゃないからバグなんてでないと思うけど
VBAってなんでメンテナンスがいるの?
コードを直接弄るわけじゃないからバグなんてでないと思うけど
526デフォルトの名無しさん (オイコラミネオ MMb3-PYJi)
2017/12/15(金) 11:01:21.94ID:sRcKW4ZTM てめーの提示したコードエラー出まくりバグばっかじゃねーか
527デフォルトの名無しさん (ワッチョイ 778c-E7Ol)
2017/12/15(金) 11:23:22.68ID:HChVIO9E0 コードは変わらなくてもWindowsとかExcelとか業務仕様とか、まわりが変わっていく
528デフォルトの名無しさん (ワッチョイ d2af-8sno)
2017/12/15(金) 11:26:16.78ID:qta4Ddk+0 VBAは楽しいぞ
俺はmos マスターだがVBAはいっさん知らんかった
最終目標としては意味不明な超複雑なコードを記述し
おれが辞めた後は誰も対処ができないという優越感を味わいたい
そしてVBEをだしてカチカチしてる姿がなんとも知的でかっこいい
ほんとこれだけのきっかけが知識につながって行く
俺はmos マスターだがVBAはいっさん知らんかった
最終目標としては意味不明な超複雑なコードを記述し
おれが辞めた後は誰も対処ができないという優越感を味わいたい
そしてVBEをだしてカチカチしてる姿がなんとも知的でかっこいい
ほんとこれだけのきっかけが知識につながって行く
529デフォルトの名無しさん (スッップ Sd32-GTd9)
2017/12/15(金) 11:36:34.77ID:yfj2Ro7Gd 今どきVBAに新規参入者がいる驚き
530デフォルトの名無しさん (ワッチョイ 778c-E7Ol)
2017/12/15(金) 11:48:05.70ID:HChVIO9E0531デフォルトの名無しさん (ワッチョイ de9f-SC1D)
2017/12/15(金) 12:00:52.51ID:IqUBh/zH0532名無し (ワンミングク MM42-cZUN)
2017/12/15(金) 12:08:15.31ID:aoP9DSfXM533デフォルトの名無しさん (ワッチョイ de9f-SC1D)
2017/12/15(金) 12:11:37.98ID:IqUBh/zH0 >>521
そこをあっさり理解出来ないからここまで時間制掛かってる。
彼の分かってない所はみんながそういうもんだとあっさり進む所で自分中心で考えること。
コンピューターが自分と同じように考えてくれると思ってる。
アレンブラやマシン語の不自由な世界で自分と同じようには考えてくれないということを思い知った方が良い。
そこをあっさり理解出来ないからここまで時間制掛かってる。
彼の分かってない所はみんながそういうもんだとあっさり進む所で自分中心で考えること。
コンピューターが自分と同じように考えてくれると思ってる。
アレンブラやマシン語の不自由な世界で自分と同じようには考えてくれないということを思い知った方が良い。
534デフォルトの名無しさん (ワッチョイ 16b9-4pIx)
2017/12/15(金) 12:26:43.87ID:SvHkecGU0 もの凄く複雑で他人の理解が及ばないようなコード書くのが目標なら、
なおさら誰の助けも借りずに独学で高めていくのが重要なんだよなぁ。
ネットで検索して簡単に見つかるような情報すら当たれないヤツが目指すものじゃないよね。
なおさら誰の助けも借りずに独学で高めていくのが重要なんだよなぁ。
ネットで検索して簡単に見つかるような情報すら当たれないヤツが目指すものじゃないよね。
535デフォルトの名無しさん (オッペケ Src7-XmSw)
2017/12/15(金) 12:27:05.72ID:JZsZmqT4r >>497
いやなんかまた鼻息荒くしちゃってるけど元々同じって言ったのお前だからなw
なんで素直にブック名とファイル名は違うって言えないんだよw
どうせ下手くそな説明なんだから無理して技巧的に言おうとすんなw
いやなんかまた鼻息荒くしちゃってるけど元々同じって言ったのお前だからなw
なんで素直にブック名とファイル名は違うって言えないんだよw
どうせ下手くそな説明なんだから無理して技巧的に言おうとすんなw
536デフォルトの名無しさん (ワッチョイ d2af-iA8U)
2017/12/15(金) 12:27:38.94ID:qta4Ddk+0 >>533
こいつらのオナニー意見なんて一切参考にせず自己解決したんだが?
Wrokbook型変数「これは文字列だから俺の方にははまらないよ」 = _
Application.GetOpenFilename「すまん、俺はただ選択されたファイルの文字列を返すだけなんだよ」
Workbook型変数「お、WorkbooksオブジェのOpenメソッドで開いとるやん。格納できるよ」= _
Workbooks.Open (Filename:=Application.GetOpenfilename)「俺は開いた文字列をファイル名として返すね」
これでどう?誰でもわかりやすいと思うけど?
頭悪すぎね?君たち
こいつらのオナニー意見なんて一切参考にせず自己解決したんだが?
Wrokbook型変数「これは文字列だから俺の方にははまらないよ」 = _
Application.GetOpenFilename「すまん、俺はただ選択されたファイルの文字列を返すだけなんだよ」
Workbook型変数「お、WorkbooksオブジェのOpenメソッドで開いとるやん。格納できるよ」= _
Workbooks.Open (Filename:=Application.GetOpenfilename)「俺は開いた文字列をファイル名として返すね」
これでどう?誰でもわかりやすいと思うけど?
頭悪すぎね?君たち
537デフォルトの名無しさん (スッップ Sd32-GTd9)
2017/12/15(金) 13:00:25.68ID:yfj2Ro7Gd なんか
1 + 1 =2
を
「1に1を加えると2になる」
と表現してる感じだなあ
1 + 1 =2
を
「1に1を加えると2になる」
と表現してる感じだなあ
538名無し (ワンミングク MM42-cZUN)
2017/12/15(金) 13:01:13.53ID:aoP9DSfXM もう突っ込まないぞ!
次のお客様どうぞ
次のお客様どうぞ
539デフォルトの名無しさん (ワッチョイ 16b9-4pIx)
2017/12/15(金) 13:03:33.01ID:SvHkecGU0540デフォルトの名無しさん (アウアウイー Sa07-nYOw)
2017/12/15(金) 13:34:09.09ID:8rowC9ysa >>536
わかった!君はプログラムじゃなくて日本語の勉強から始めよう
わかった!君はプログラムじゃなくて日本語の勉強から始めよう
541デフォルトの名無しさん (アウアウイー Sa07-nYOw)
2017/12/15(金) 13:34:59.69ID:8rowC9ysa 会話形式にしてくれないと理解できないといってくれれば誰か頑張ったかもねw
542デフォルトの名無しさん (ワッチョイ d2af-8sno)
2017/12/15(金) 13:57:32.57ID:qta4Ddk+0543デフォルトの名無しさん (ワッチョイ 16b9-4pIx)
2017/12/15(金) 14:06:04.35ID:SvHkecGU0 >>542
ブック名も返さないよ。
何にせよWorkbooks.Openメソッドが名前を返したら
Set WB = Workbooks.Open(Application.GetOpenFilename)
が成立しないから。
ブック名も返さないよ。
何にせよWorkbooks.Openメソッドが名前を返したら
Set WB = Workbooks.Open(Application.GetOpenFilename)
が成立しないから。
544デフォルトの名無しさん (オイコラミネオ MMb3-PYJi)
2017/12/15(金) 14:12:36.10ID:sRcKW4ZTM いいからMSDNのリファレンス読んでこいよ
545デフォルトの名無しさん (ワッチョイ d2af-8sno)
2017/12/15(金) 14:42:08.62ID:qta4Ddk+0546デフォルトの名無しさん (ワッチョイ de9f-SC1D)
2017/12/15(金) 14:44:22.53ID:IqUBh/zH0 >>536
それ、全部既に言ってたからw
お前はみんながすんなり分かるところをこれだけすったもんだしてやっと分かっただけ。
これまでのやりとりが無かったら、それそのまんま言っても理解出来て無い。
そもそも、バカがどうしてバカなのかなんてこっちは理解出来ない。
お前とは違うからな。
それ、全部既に言ってたからw
お前はみんながすんなり分かるところをこれだけすったもんだしてやっと分かっただけ。
これまでのやりとりが無かったら、それそのまんま言っても理解出来て無い。
そもそも、バカがどうしてバカなのかなんてこっちは理解出来ない。
お前とは違うからな。
547デフォルトの名無しさん (オイコラミネオ MM6e-PYJi)
2017/12/15(金) 14:47:50.40ID:xyZ0U828M メソッドの返り値として何の型のどんなオブジェクトが返ってくることを意識する重要さが微塵もわかってないのでこいつのVBAスキルはここで打ち止めだな
548デフォルトの名無しさん (ササクッテロロ Spc7-rmn3)
2017/12/15(金) 15:09:10.26ID:vqijPR8bp 以降はスルーしよう
549デフォルトの名無しさん (スッップ Sd32-GTd9)
2017/12/15(金) 15:21:09.44ID:yfj2Ro7Gd 整数 + 整数の戻り値が整数なのに整数 / 整数の戻り値が整数じゃない理由がわからない、不合理だ、と
駄々をこねる人間もいるんだからしょうがない
駄々をこねる人間もいるんだからしょうがない
550デフォルトの名無しさん (アウアウイー Sa07-nYOw)
2017/12/15(金) 19:31:32.21ID:lmKJ5VLWa 世の中にはこういう本物のバカもいるんだなあと勉強になったよ
551デフォルトの名無しさん (ワッチョイ 5303-6+fO)
2017/12/15(金) 19:39:48.70ID:IAZ3SurN0 わりとそこかしこに居るけどな、本物のバカ
ひきこもりか?おまえw
ひきこもりか?おまえw
552デフォルトの名無しさん (ワッチョイ d2af-8sno)
2017/12/15(金) 21:40:28.03ID:qta4Ddk+0553デフォルトの名無しさん (ワッチョイ 16b9-4pIx)
2017/12/15(金) 21:49:11.45ID:SvHkecGU0 >>419からもう二週間も経ったのか。時が経つのは早いな。
554デフォルトの名無しさん (ワッチョイ 1ff7-E651)
2017/12/15(金) 22:06:37.13ID:5LKBHQ7A0555デフォルトの名無しさん (アウアウカー Sa6f-tkV0)
2017/12/15(金) 22:06:40.33ID:sA/nQpBXa MOSエキスパート?
何それ美味しいの?
昔、「初心者だから仕様がないけどさ」と説教した相手が今回君が挑戦してる言語のエキスパート持ってたけどさ。
何それ美味しいの?
昔、「初心者だから仕様がないけどさ」と説教した相手が今回君が挑戦してる言語のエキスパート持ってたけどさ。
556デフォルトの名無しさん (ワッチョイ 1693-qk9N)
2017/12/16(土) 04:53:25.79ID:kSf4Qz7z0 先日、AutoFilterとValidationの不具合で質問したものです。
(まだ解決していませんが、、)
また新たな不具合に悩まされています。
このような場合、どこに報告すればMSの目にとまりますかね?
もし同一環境のかたおられましたら再現テストしていただけるとありがたいです。
[環境]
Microsoft Office Home and Business 2013
バージョン: 15.0.4989.1000 (2017/12)
Excel2013
Win10 64bit Core i7 Mem8GB
[手順]
以下の手順で実行するとシートSelectが不完全な状態になる。
Trigger: 別シートの貼付画像のOnAction
→PopupMenuのOnAction
→呼び出されたProc内で、SheetSelect
続けてAutofilter実施 (直接の原因ではない)
(その2へ)
(まだ解決していませんが、、)
また新たな不具合に悩まされています。
このような場合、どこに報告すればMSの目にとまりますかね?
もし同一環境のかたおられましたら再現テストしていただけるとありがたいです。
[環境]
Microsoft Office Home and Business 2013
バージョン: 15.0.4989.1000 (2017/12)
Excel2013
Win10 64bit Core i7 Mem8GB
[手順]
以下の手順で実行するとシートSelectが不完全な状態になる。
Trigger: 別シートの貼付画像のOnAction
→PopupMenuのOnAction
→呼び出されたProc内で、SheetSelect
続けてAutofilter実施 (直接の原因ではない)
(その2へ)
557デフォルトの名無しさん (ワッチョイ 1693-qk9N)
2017/12/16(土) 04:53:47.87ID:kSf4Qz7z0 >>556
(その2)
[現象]
・Fitering成功しているように見えるが、非表示セルにカーソル移動できてしまう。
・セル値の削除が効かない。(連動イベントが動かず、本現象に気づく)
・範囲コピー貼り付けが正しく行われない。
・セルをコピーモードにしても、選択範囲が破線矩形にならない。
→なんと恐ろしいことに、操作の対象が現在見えているActiveCellではなく、
呼出元画像のあるシートの同一番地に対して行われている様子。
破線矩形も元シートを開いたらそこにあった。
削除処理も元シートに対して行われる。
ステータスバーのセル値カウントも、現在見えているシートではなく、呼出元の情報を返す様子。
ActiveCell.Address(External:=True)は実際に見えている移動先シートを示しているのに、、、
[発生条件の再検証]
・別シートの画像.OnAction→Popup.OnActionで初めて成立。
・画像.OnActionから直接Proc実行(Sheet選択、Autofilter実施)では再現せず。
・Alt+F8からのPopup起点とすると再現せず。
・Popup.OnActionを入れ子にしても再現せず。
・ボタンをTableと同じシートに配置した場合は再現せず。
・Office2010では再現せず。
(その3へ)
(その2)
[現象]
・Fitering成功しているように見えるが、非表示セルにカーソル移動できてしまう。
・セル値の削除が効かない。(連動イベントが動かず、本現象に気づく)
・範囲コピー貼り付けが正しく行われない。
・セルをコピーモードにしても、選択範囲が破線矩形にならない。
→なんと恐ろしいことに、操作の対象が現在見えているActiveCellではなく、
呼出元画像のあるシートの同一番地に対して行われている様子。
破線矩形も元シートを開いたらそこにあった。
削除処理も元シートに対して行われる。
ステータスバーのセル値カウントも、現在見えているシートではなく、呼出元の情報を返す様子。
ActiveCell.Address(External:=True)は実際に見えている移動先シートを示しているのに、、、
[発生条件の再検証]
・別シートの画像.OnAction→Popup.OnActionで初めて成立。
・画像.OnActionから直接Proc実行(Sheet選択、Autofilter実施)では再現せず。
・Alt+F8からのPopup起点とすると再現せず。
・Popup.OnActionを入れ子にしても再現せず。
・ボタンをTableと同じシートに配置した場合は再現せず。
・Office2010では再現せず。
(その3へ)
558デフォルトの名無しさん (ワッチョイ 1693-qk9N)
2017/12/16(土) 04:54:06.08ID:kSf4Qz7z0 >>556
(その3)
[試験に用いたコード]
1) テーブルとは別シートにある画像を選択して、ImmediateからOnAction登録。
Selection.OnAction = "mkPop"
2) Popup生成
Sub mkPop()
With CommandBars.Add(Position:=msoBarPopup)
With .Controls.Add
.Caption = "Filter"
.OnAction = "DoFilter"
End With
.ShowPopup
.Delete
End With
End Sub
3) Filterling実施
Sub DoFilter()
Sheets("List").Select
Sheets("List").Range("$A$1:$C$5").AutoFilter Field:=1, Criteria1:="TEST"
Debug.Print ActiveCell.Address(external:=True) '確認用
End Sub
** 実際には機材画像のPropertyから読み込んだ文字列でフィルタリング。
** 今回はAutoFilterは無実でシート選択の不全実行が現象の概要とみています。
(その3)
[試験に用いたコード]
1) テーブルとは別シートにある画像を選択して、ImmediateからOnAction登録。
Selection.OnAction = "mkPop"
2) Popup生成
Sub mkPop()
With CommandBars.Add(Position:=msoBarPopup)
With .Controls.Add
.Caption = "Filter"
.OnAction = "DoFilter"
End With
.ShowPopup
.Delete
End With
End Sub
3) Filterling実施
Sub DoFilter()
Sheets("List").Select
Sheets("List").Range("$A$1:$C$5").AutoFilter Field:=1, Criteria1:="TEST"
Debug.Print ActiveCell.Address(external:=True) '確認用
End Sub
** 実際には機材画像のPropertyから読み込んだ文字列でフィルタリング。
** 今回はAutoFilterは無実でシート選択の不全実行が現象の概要とみています。
559デフォルトの名無しさん (ワッチョイ 1693-qk9N)
2017/12/16(土) 04:56:00.08ID:kSf4Qz7z0560デフォルトの名無しさん (ワッチョイ 1693-qk9N)
2017/12/16(土) 05:17:34.49ID:kSf4Qz7z0 >>556
(その4)
回避のためのリフレッシュ手順を忘れておりました。
[効果があるリフレッシュ操作]
' 以下、または手動によるシート切替(Screenupdating=False効かず、ちらつくが、、)
'--------------------------------
Application.SendKeys "^{PgDn}":Application.SendKeys "^{PgUp}"
' Popup表示前にSheet移動してしまう。(Cancel有無にかかわらず移動してしまうが、、)
'--------------------------------
Application.ScreenUpdating = False: Sheets("List").Select
.ShowPopup
[効果がないもの]
' Filtering直前のAutoFilter再設置
ActiveSheet.Range("$A$1:$C$5").AutoFilter
' 画面再描画処理
Application.ScreenUpdating = False: Application.ScreenUpdating = True
' その他、以下を試したがNG
Application.EnableEvents = True
Application.DisplayFullScreen = True: Application.DisplayFullScreen = False
Application.CalculateFull
Application.CalculateFullRebuild
AppActivate (Application.Caption)
Worksheets("List").Activate
Application.StatusBar = "aaaaaa": Application.StatusBar = False
MsgBox "OK"
(その4)
回避のためのリフレッシュ手順を忘れておりました。
[効果があるリフレッシュ操作]
' 以下、または手動によるシート切替(Screenupdating=False効かず、ちらつくが、、)
'--------------------------------
Application.SendKeys "^{PgDn}":Application.SendKeys "^{PgUp}"
' Popup表示前にSheet移動してしまう。(Cancel有無にかかわらず移動してしまうが、、)
'--------------------------------
Application.ScreenUpdating = False: Sheets("List").Select
.ShowPopup
[効果がないもの]
' Filtering直前のAutoFilter再設置
ActiveSheet.Range("$A$1:$C$5").AutoFilter
' 画面再描画処理
Application.ScreenUpdating = False: Application.ScreenUpdating = True
' その他、以下を試したがNG
Application.EnableEvents = True
Application.DisplayFullScreen = True: Application.DisplayFullScreen = False
Application.CalculateFull
Application.CalculateFullRebuild
AppActivate (Application.Caption)
Worksheets("List").Activate
Application.StatusBar = "aaaaaa": Application.StatusBar = False
MsgBox "OK"
561名無し (ワッチョイ ef65-cZUN)
2017/12/16(土) 05:26:07.46ID:j6rMoAMF0 そういうときは、doeventsやwaitも試してみるべし
今パソコン無いから試す暇がない
今パソコン無いから試す暇がない
562デフォルトの名無しさん (ワッチョイ 1693-qk9N)
2017/12/16(土) 05:36:15.74ID:kSf4Qz7z0 >>561
そういえばDoEventsは試しました。
結果効果はなく、SendKeysを無効化して現象回避もできなくなるという逆効果も確認しました。
Waitはどこに入れると効果的ですかね。
間にStopを入れて一時停止したりはしてみましたけど、、、
そういえばDoEventsは試しました。
結果効果はなく、SendKeysを無効化して現象回避もできなくなるという逆効果も確認しました。
Waitはどこに入れると効果的ですかね。
間にStopを入れて一時停止したりはしてみましたけど、、、
563デフォルトの名無しさん (ワッチョイ 1693-qk9N)
2017/12/16(土) 05:45:39.73ID:kSf4Qz7z0564デフォルトの名無しさん (ワッチョイ b7bd-KR2E)
2017/12/16(土) 18:57:10.19ID:9cn7Nun80 現在vbaをネットで勉強中ですが書籍も使って勉強しようと思っています
プログラミング初心者がvbaを学ぶのにお勧めの書籍を教えていただけませんか?
プログラミング初心者がvbaを学ぶのにお勧めの書籍を教えていただけませんか?
565デフォルトの名無しさん (アウアウカー Sa6f-MO8t)
2017/12/16(土) 20:17:51.76ID:7KC6Lrbda VBAで書籍は金の無駄だよ
最初はマクロの記録を見るのとネットでぐぐれば大抵のことはできるよ
最初はマクロの記録を見るのとネットでぐぐれば大抵のことはできるよ
566デフォルトの名無しさん (ササクッテロロ Spc7-sxUW)
2017/12/16(土) 20:36:50.77ID:IU5B3eEvp データの入力規則にカンマ区切りの項数不定の1-9の数字のみを許容したいのですが、どうすればよいですか?
正規表現だと、こんな感じです。
/^([1-9]+,)*([1-9]+)$/
regexp使ってVBAでチェックする方法ならやり方が分かるのですが、セルのデータ入力規則で設定する方法が分かりません。
正規表現だと、こんな感じです。
/^([1-9]+,)*([1-9]+)$/
regexp使ってVBAでチェックする方法ならやり方が分かるのですが、セルのデータ入力規則で設定する方法が分かりません。
567デフォルトの名無しさん (ワッチョイ 1e9f-iA8U)
2017/12/16(土) 20:57:31.30ID:yaHEvAoH0568デフォルトの名無しさん (ワッチョイ 1e9f-iA8U)
2017/12/16(土) 21:10:04.55ID:yaHEvAoH0 >>564
本格的にやりたいなら、VBAと関係ないように思えるけど
「スッキリわかるJava」シリーズをオススメしたい。
自分の場合、VBA本ではさっぱりだったけど、この本で目覚めた。
オブジェクト指向の解説は、VBAの理解にもかなり役立つ。
プログラミング言語は根幹は同じで、方言みたいなもんなので
他の言語にもすんなり入っていけるようになる。
やれることが多くなるよ。
本格的にやりたいなら、VBAと関係ないように思えるけど
「スッキリわかるJava」シリーズをオススメしたい。
自分の場合、VBA本ではさっぱりだったけど、この本で目覚めた。
オブジェクト指向の解説は、VBAの理解にもかなり役立つ。
プログラミング言語は根幹は同じで、方言みたいなもんなので
他の言語にもすんなり入っていけるようになる。
やれることが多くなるよ。
569デフォルトの名無しさん (ササクッテロレ Spc7-8sno)
2017/12/16(土) 21:57:56.42ID:0LU2hdfpp オブジェクト指向をVBA始めて1週間だが理解してみた
まず
変数は何かの型に入れる
お前はこれしかできねえよ
っていう
そして
その型の中のさらに型の中の命令はなに?
と掘り下げて行く
これがオブジェクト指向
まず
変数は何かの型に入れる
お前はこれしかできねえよ
っていう
そして
その型の中のさらに型の中の命令はなに?
と掘り下げて行く
これがオブジェクト指向
570デフォルトの名無しさん (スッップ Sd32-GTd9)
2017/12/16(土) 22:19:01.15ID:vwwP6eCQd571デフォルトの名無しさん (ワッチョイ 5303-6+fO)
2017/12/16(土) 22:21:35.33ID:6cm/hyEb0 あと一歩というところだな、実にオシイと言っておこう
しかし始めて1週間でそこまでオブジェクト指向の真髄に迫るとは大したものだ
末恐ろしい奴が現れたもんだ、これは俺もうかうかして居られんな
しかし始めて1週間でそこまでオブジェクト指向の真髄に迫るとは大したものだ
末恐ろしい奴が現れたもんだ、これは俺もうかうかして居られんな
572デフォルトの名無しさん (スッップ Sd32-GTd9)
2017/12/16(土) 22:26:05.73ID:vwwP6eCQd なるほど
俺が間違っていたようだ
俺が間違っていたようだ
573デフォルトの名無しさん (ワッチョイ 339f-MO8t)
2017/12/16(土) 23:09:21.00ID:9T+lJsLD0 お、おぅ
574デフォルトの名無しさん (ワッチョイ 5e8a-qk9N)
2017/12/16(土) 23:16:38.47ID:jWdcz3p90 Access だと、ずいぶん前から SendKeys は使うな ってのが喧しいが
Excel だと現役なんか? いいんか?
Excel だと現役なんか? いいんか?
575デフォルトの名無しさん (ワッチョイ cbaa-4pIx)
2017/12/16(土) 23:32:07.04ID:oxEVVuR00576デフォルトの名無しさん (ワッチョイ de9d-RjCm)
2017/12/17(日) 01:01:58.50ID:ZCl426tV0 たんにActiveCellのシートが思ってるものじゃないだけの気がするなぁ
そのコードどこに書いてるんだよ
そのコードどこに書いてるんだよ
577デフォルトの名無しさん (ワッチョイ 772b-Vy73)
2017/12/17(日) 01:39:41.36ID:F05u2uwp0 誰がオブジェクト恥垢やねん!(´・ω・`)b
578デフォルトの名無しさん (ワッチョイ 1693-qk9N)
2017/12/17(日) 04:46:14.88ID:Hjh32hjm0 >>576
どゆこと?
例えばですね、他Bookにある画像をクリックしてそこにPopupが表示され、フィルタ処理を選びます。
で、フォーカスは対象テーブルのあるブック・シートに遷移して、フィルタリングに成功します。
SDIなので画面上は呼出元ブックとテーブル用ブックが2つ並んでおります。
ここでScriptは完了するわけですが、追加の操作をするために、遷移先シートを明示的に選択。
明らかに自分はその目的のシートを選んでいます。
ここでImmediateから、ActiveCell.Address(external:=True)をたたくと明らかに今触っているセルの番地が、Book名、シート名、セル番地名のフルパスで戻ります。
ここでカレントセルのある範囲を選択反転してCopy操作を行うと、呼出元ブックの同じセル番地がコピーモードの破線矩形にかわるんです。
カーソルで下へスクロールすると、呼出元シートもリモコンで操作しているみたいに一緒にスクロールするんです。
削除操作も、、、、同一ファイルで操作している時は気づかなかったですが、別ファイルから行うと凄いびっくりなビジュアルが展開されます。
明らかに "ActiveCell" という状況が表と裏に分離されたような状態になるんです。
同じブックをWin7+Excel2010で操作した場合は起きません。
自ファイルだとSendKeysで逃げられるんですが、外部ファイルからシート切替しても呼出元が切り替わってしまって、、
テーブル側ブックがキー操作相当でシート切替されないとこの状態が解除されないみたいです。
どゆこと?
例えばですね、他Bookにある画像をクリックしてそこにPopupが表示され、フィルタ処理を選びます。
で、フォーカスは対象テーブルのあるブック・シートに遷移して、フィルタリングに成功します。
SDIなので画面上は呼出元ブックとテーブル用ブックが2つ並んでおります。
ここでScriptは完了するわけですが、追加の操作をするために、遷移先シートを明示的に選択。
明らかに自分はその目的のシートを選んでいます。
ここでImmediateから、ActiveCell.Address(external:=True)をたたくと明らかに今触っているセルの番地が、Book名、シート名、セル番地名のフルパスで戻ります。
ここでカレントセルのある範囲を選択反転してCopy操作を行うと、呼出元ブックの同じセル番地がコピーモードの破線矩形にかわるんです。
カーソルで下へスクロールすると、呼出元シートもリモコンで操作しているみたいに一緒にスクロールするんです。
削除操作も、、、、同一ファイルで操作している時は気づかなかったですが、別ファイルから行うと凄いびっくりなビジュアルが展開されます。
明らかに "ActiveCell" という状況が表と裏に分離されたような状態になるんです。
同じブックをWin7+Excel2010で操作した場合は起きません。
自ファイルだとSendKeysで逃げられるんですが、外部ファイルからシート切替しても呼出元が切り替わってしまって、、
テーブル側ブックがキー操作相当でシート切替されないとこの状態が解除されないみたいです。
579デフォルトの名無しさん (ワッチョイ 16b9-4pIx)
2017/12/17(日) 05:09:02.50ID:/bdPdb8E0580デフォルトの名無しさん (ワッチョイ 1693-qk9N)
2017/12/17(日) 06:51:48.24ID:Hjh32hjm0 >>579
(その6)
Debug用と問題回避のためにActiveCellを記述していますが、実際のコードでは使用していません。
>>558のSelectionはコードの中に記述しているわけではなく、検証用の画像ボタンを登録する手順としてImmediateから実行しているだけです。極力BackEndから操作する派です。
実際の運用Bookでは極力同一ファイルにMacroを集めています。
Macro自体は仕事を完全に全うするのですが、、、そのあとシートの状態がおかしくなるという現象です。
状態を解消するには、呼出先のBookでシート切替を行う方法のみ。
で、発想を変えて、「外部から制御できないか」と考えました。
VBE内にVBSScriptを記述し、「中の外」からシート選択してみようと。
結果NG、再現してしまいました。
じゃあ、本当に外から制御すればどうかな?と思い、上記のVBScriptを同一フォルダに置いて呼び出す作戦に。
(その6)
Debug用と問題回避のためにActiveCellを記述していますが、実際のコードでは使用していません。
>>558のSelectionはコードの中に記述しているわけではなく、検証用の画像ボタンを登録する手順としてImmediateから実行しているだけです。極力BackEndから操作する派です。
実際の運用Bookでは極力同一ファイルにMacroを集めています。
Macro自体は仕事を完全に全うするのですが、、、そのあとシートの状態がおかしくなるという現象です。
状態を解消するには、呼出先のBookでシート切替を行う方法のみ。
で、発想を変えて、「外部から制御できないか」と考えました。
VBE内にVBSScriptを記述し、「中の外」からシート選択してみようと。
結果NG、再現してしまいました。
じゃあ、本当に外から制御すればどうかな?と思い、上記のVBScriptを同一フォルダに置いて呼び出す作戦に。
581デフォルトの名無しさん (ワッチョイ 1693-qk9N)
2017/12/17(日) 06:52:33.95ID:Hjh32hjm0 >>579
(その7)
--------------------------------
[Popupから呼び出すProc]
Sub DoFilter()
Sheets("List").Select
Sheets("List").Range("$A$1:$C$5").AutoFilter Field:=1, Criteria1:="TEST"
Call = Shell("wscript " & ThisWorkbook.Path & "\SelectSheet.vbs", vbHide)
End Sub
--------------------------------
[SelectSheet.vbsの中身]
call SheetSelect_fromVBS
Sub SheetSelect_fromVBS()
Dim xlApp: Set xlApp = GetObject(, "Excel.Application")
With xlApp
.Workbooks("ListBook.xlsm").Activate
.Worksheets("List").Select
End With
Set xlApp = Nothing
End Sub
--------------------------------
なんとこれが功を奏し、ActiveSheetの幽体離脱状態から抜け出すことができました。
シート切替も不要に。これで一先ず凌げそうですが、MSには不具合対応してもらいたいです。
コメントいただいた方々、ありがとうございました。
(その7)
--------------------------------
[Popupから呼び出すProc]
Sub DoFilter()
Sheets("List").Select
Sheets("List").Range("$A$1:$C$5").AutoFilter Field:=1, Criteria1:="TEST"
Call = Shell("wscript " & ThisWorkbook.Path & "\SelectSheet.vbs", vbHide)
End Sub
--------------------------------
[SelectSheet.vbsの中身]
call SheetSelect_fromVBS
Sub SheetSelect_fromVBS()
Dim xlApp: Set xlApp = GetObject(, "Excel.Application")
With xlApp
.Workbooks("ListBook.xlsm").Activate
.Worksheets("List").Select
End With
Set xlApp = Nothing
End Sub
--------------------------------
なんとこれが功を奏し、ActiveSheetの幽体離脱状態から抜け出すことができました。
シート切替も不要に。これで一先ず凌げそうですが、MSには不具合対応してもらいたいです。
コメントいただいた方々、ありがとうございました。
582デフォルトの名無しさん (ワッチョイ 1693-qk9N)
2017/12/17(日) 06:55:18.78ID:Hjh32hjm0583デフォルトの名無しさん (ワッチョイ d2af-8sno)
2017/12/17(日) 10:32:12.89ID:e1NNF66l0 つまりここでは
なんの型にはめるのか?
命令は?状態は?
だろ?
でもCellsってプロパティだろ?なんで一発で状態から入るんだ?
なんの型にはめるのか?
命令は?状態は?
だろ?
でもCellsってプロパティだろ?なんで一発で状態から入るんだ?
584デフォルトの名無しさん (ワッチョイ ef65-qk9N)
2017/12/17(日) 11:20:01.90ID:ZjZyIyTi0 >>583
Cellsはオブジェクトだ
そしてWorksheetオブジェクトやCellsオブジェクトのプロパティでもある
あと、ようやく時間ができたからWorkbookオブジェクトをVariantに代入しようとしたら当然のごとく「オブジェクトは、このプロパティまたはメソッドをサポートしていません。」になった。
一体何を試してパスが云々なんて話が出てきたんだろう。
Dim V As Variant
V = Workbooks(1)
→代入不可
Set V = Workbooks(1)
→VはVariant/Object/ThisWorkbook型
調べてみてもWorkbook型にデフォルトプロパティは設定してなさそう。
Cellsはオブジェクトだ
そしてWorksheetオブジェクトやCellsオブジェクトのプロパティでもある
あと、ようやく時間ができたからWorkbookオブジェクトをVariantに代入しようとしたら当然のごとく「オブジェクトは、このプロパティまたはメソッドをサポートしていません。」になった。
一体何を試してパスが云々なんて話が出てきたんだろう。
Dim V As Variant
V = Workbooks(1)
→代入不可
Set V = Workbooks(1)
→VはVariant/Object/ThisWorkbook型
調べてみてもWorkbook型にデフォルトプロパティは設定してなさそう。
585デフォルトの名無しさん (ワッチョイ ef65-qk9N)
2017/12/17(日) 11:21:03.68ID:ZjZyIyTi0586デフォルトの名無しさん (ワッチョイ d2af-8sno)
2017/12/17(日) 11:26:43.28ID:e1NNF66l0587デフォルトの名無しさん (ワッチョイ b7a5-nSRQ)
2017/12/17(日) 11:27:13.71ID:gZkjaYao0588デフォルトの名無しさん (アークセー Sxc7-Zhdx)
2017/12/17(日) 11:37:53.28ID:ZJu/+/V0x >>583
メゾット君、プロパティだから状態というのは間違えやすい考え方だからこの際捨て去った方が良い
プロパティは呼び出し元プログラムに対してオブジェクトのクラス内部への変数へのアクセスを提供するもので、アクセス先の変数のデータ型はプリミティブな値であることもあれば、何らかのオブジェクトである場合もある
というか、オブジェクト式の途中で出てくるプロパティは全てオブジェクトへの参照を提供するプロパティだ
Cellsの場合はRange型のオブジェクトへのアクセスを提供するプロパティだが、Grobalのメンバプロパティだから上位オブジェクト式を省略して書けるわけ
メゾット君、プロパティだから状態というのは間違えやすい考え方だからこの際捨て去った方が良い
プロパティは呼び出し元プログラムに対してオブジェクトのクラス内部への変数へのアクセスを提供するもので、アクセス先の変数のデータ型はプリミティブな値であることもあれば、何らかのオブジェクトである場合もある
というか、オブジェクト式の途中で出てくるプロパティは全てオブジェクトへの参照を提供するプロパティだ
Cellsの場合はRange型のオブジェクトへのアクセスを提供するプロパティだが、Grobalのメンバプロパティだから上位オブジェクト式を省略して書けるわけ
589デフォルトの名無しさん (ササクッテロ Spc7-8sno)
2017/12/17(日) 11:46:44.41ID:gC8RO3PCp >>588
カタカタ使うな
カタカタ使うな
590デフォルトの名無しさん (ワッチョイ ef65-qk9N)
2017/12/17(日) 11:53:12.87ID:ZjZyIyTi0591デフォルトの名無しさん (アークセー Sxc7-Zhdx)
2017/12/17(日) 11:59:28.64ID:R4ec2g2Bx >>590
あの質問者が自分でクラスを作れるようになるのって何年か先の話だろうな
あの質問者が自分でクラスを作れるようになるのって何年か先の話だろうな
592デフォルトの名無しさん (ササクッテロ Spc7-8sno)
2017/12/17(日) 12:11:00.98ID:gC8RO3PCp クラス?
オブジェクトに必要な要素を全部埋め込むやつだろ?
もうできるよ?
でもnewクラスの使い方が意味がわからない
同じクラスで(中身も同じ)なら作る意味ないんじゃねえの?
オブジェクトに必要な要素を全部埋め込むやつだろ?
もうできるよ?
でもnewクラスの使い方が意味がわからない
同じクラスで(中身も同じ)なら作る意味ないんじゃねえの?
593デフォルトの名無しさん (ワッチョイ ef65-qk9N)
2017/12/17(日) 12:19:09.45ID:ZjZyIyTi0 確かにこれでは何年も先の話になりそうだ
594デフォルトの名無しさん (ササクッテロ Spc7-8sno)
2017/12/17(日) 12:31:47.04ID:gC8RO3PCp いま、クラスをみてみた
そしたらworkbookの中にworksheetsがプロパティとしていた
どういうことだ?
俺はVBAの盲点をついたか?
そしたらworkbookの中にworksheetsがプロパティとしていた
どういうことだ?
俺はVBAの盲点をついたか?
595デフォルトの名無しさん (ササクッテロ Spc7-8sno)
2017/12/17(日) 12:40:07.47ID:gC8RO3PCp 知りすぎたか?
596デフォルトの名無しさん (ササクッテロ Spc7-8sno)
2017/12/17(日) 12:51:28.57ID:gC8RO3PCp dim i as long
For i = 2 To i.Cells(.Rows.Count, 1).End(xlUp).Row
このi.cellsの意味がわからない
教えてくれ
For i = 2 To i.Cells(.Rows.Count, 1).End(xlUp).Row
このi.cellsの意味がわからない
教えてくれ
597デフォルトの名無しさん (スプッッ Sd52-GTd9)
2017/12/17(日) 13:07:40.63ID:+CY9tzJPd プロパティは内部変数へのアクセスに限らずいろんなこと出来るし、最初さっぱり理解できなかった。
まさかただのシンタックスシュガーだなんて想像してなかったからな。
まさかただのシンタックスシュガーだなんて想像してなかったからな。
598デフォルトの名無しさん (アークセー Sxc7-Zhdx)
2017/12/17(日) 13:23:13.67ID:R4ec2g2Bx599デフォルトの名無しさん (アークセー Sxc7-Zhdx)
2017/12/17(日) 13:26:02.12ID:R4ec2g2Bx600デフォルトの名無しさん (アークセー Sxc7-Zhdx)
2017/12/17(日) 13:27:44.67ID:R4ec2g2Bx New出来てないの笑える
クラスモジュールを挿入できただけでクラス使えるようになってねぇじゃん
クラスモジュールを挿入できただけでクラス使えるようになってねぇじゃん
601デフォルトの名無しさん (ワッチョイ ff73-LxOA)
2017/12/17(日) 13:51:38.17ID:5yg/jtY20 おそらく本職プログラマじゃなく事務の効率化でVBAに手出したんでしょ?
どうせ片手間ならプログラミング適性無さそうだからおとなしくコピペで済ますのが無難だと思う
たぶん永久に理解出来ないよ
どうせ片手間ならプログラミング適性無さそうだからおとなしくコピペで済ますのが無難だと思う
たぶん永久に理解出来ないよ
602デフォルトの名無しさん (ササクッテロ Spc7-8sno)
2017/12/17(日) 14:08:08.04ID:gC8RO3PCp603デフォルトの名無しさん (アークセー Sxc7-Zhdx)
2017/12/17(日) 14:15:19.48ID:R4ec2g2Bx >>602
自分で考えろよ、クラス作れるんだろ?w
自分で考えろよ、クラス作れるんだろ?w
604デフォルトの名無しさん (ワッチョイ 12b3-iA8U)
2017/12/17(日) 14:17:42.01ID:KxwCW4kM0 最近オブジェクト指向の本読んでみたんだけど
これまで作ってきた稚拙なスパゲティコードをこの際書き直してみたくなった
これまで作ってきた稚拙なスパゲティコードをこの際書き直してみたくなった
605デフォルトの名無しさん (アークセー Sxc7-Zhdx)
2017/12/17(日) 14:25:27.85ID:R4ec2g2Bx606名無し (ワッチョイ ef65-cZUN)
2017/12/17(日) 19:27:22.86ID:ZjZyIyTi0 >>604
今書き直しても、しばらくするとまた見識が増えて書き直したくなるだけやで
今書き直しても、しばらくするとまた見識が増えて書き直したくなるだけやで
607デフォルトの名無しさん (ワッチョイ 5303-6+fO)
2017/12/17(日) 19:31:24.74ID:SRQ89yzu0608デフォルトの名無しさん (ワッチョイ 16b9-4pIx)
2017/12/17(日) 19:52:14.28ID:/bdPdb8E0■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 習政権、高市首相への態度硬化 台湾有事発言で連日非難 中国 ★11 [ぐれ★]
- 国内ホテル、既にキャンセルも 訪日客関連業界、事態見守る ★3 [蚤の市★]
- 日本損失1.7兆円に修正 中国渡航自粛の影響試算 [蚤の市★]
- 「どうしようもない」 ため息つくアジアの玄関口 中国の訪日自粛で−福岡市 [蚤の市★]
- 「アベノミクス」で投資対象と化したマンション ローンの低金利続き「年収の12倍」借りる20代出現 [蚤の市★]
- 橋下徹氏 外務省幹部の訪中受け「口だけ番長」へ痛烈指摘 「喧嘩は日本の完敗…なんとかっこ悪い日本か」 [冬月記者★]
- 高市周辺、さすがに焦り始めるww「小さな火種が火事になりかけている。早く鎮火しなくてはいけない」 [271912485]
- 【実況】博衣こよりのえちえち朝こよ🧪
- 【高市悲報】神谷「部下が間違えて脱炭素を脱酸素て書いたんですよ😡それ読んだだけなのに挙げ足とるな!小学生か!」 [359965264]
- 中国「高市が頭を下げて謝罪しない限り、絶対に許さない」 [329329848]
- 【超悲報】中国への武力行使、世論調査で「賛成」「どちらかといえば賛成」48.8% 「反対」「どちらかといえば反対」の44.2%を上回る [314039747]
- ほかほかご飯にかけるとうまいもの一覧
