[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 12/16 07:47 / Filesize : 287 KB / Number-of Response : 1010
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Excel VBA 質問スレ Part74



1 名前:デフォルトの名無しさん mailto:sage [2021/12/20(月) 01:40:59.22 ID:jnlr9GaR0.net]
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑同じ内容を2行貼り付けるナリ

ExcelのVBAに関する質問スレナリ
コード書き込みや作成依頼もOKナリ

※前スレ
Excel VBA 質問スレ Part73
https://mevius.5ch.net/test/read.cgi/tech/1631485799/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured

855 名前:デフォルトの名無しさん mailto:sage [2022/01/31(月) 09:38:43.11 ID:9sC6tTKap.net]
JSはWebのエクセルの話から派生したみたいだからあながち完全にスレチという訳でもなさそうだな
一応俺も少しJS齧ってはいるけど嘘を書いているようには見えないなぁ
どの辺が嘘なんだろ?

856 名前:デフォルトの名無しさん mailto:sage [2022/01/31(月) 10:13:50.76 ID:zlqGzvHc0.net]
>>849
嘘ではなかった、アドイン入れたらJS使えたわ
ただ、ぱっと触った所vbaでいいとしか思わんかった。慣れてる方が楽でいい
jQueryも使えると思うけど、使う理由はないと思う。あれセレクタ便利になるけど、エクセルjsでは使わないような

ただwebエクセルでの使い方がわからんかったけど、多分一生使わないからもういいや

857 名前:デフォルトの名無しさん mailto:sage [2022/01/31(月) 10:25:32.89 ID:xKkvHIL7d.net]
自分は嘘と言ってるつもりはないけど話が散らかりすぎてしかもどうでもいいことをダラダラ書きすぎと思ってるけどね
知ってることをいろいろ言いたいのかもしれないけどスレチだってことをわきまえてほしい

858 名前:デフォルトの名無しさん mailto:sage [2022/01/31(月) 10:46:32.75 ID:e1XVzmlT0.net]
Web版Excelのマクロ機能(JSスクリプト)は家庭向け製品では使えない
いまのところ法人向け製品だけの機能

859 名前:デフォルトの名無しさん mailto:sage [2022/01/31(月) 10:58:28.57 ID:zlqGzvHc0.net]
>>852
ああそういうことね、ありがとう

860 名前:デフォルトの名無しさん mailto:sage [2022/01/31(月) 11:28:12.04 ID:KIxAb0730.net]
まあ、ウソホントの話は置いといてマッタリ平和にやりましょうよ

861 名前:デフォルトの名無しさん mailto:sage [2022/01/31(月) 12:34:07.47 ID:/myUa4Xt0.net]
争いが嘘か、平和が嘘か

862 名前:デフォルトの名無しさん mailto:sage [2022/01/31(月) 12:47:21.32 ID:PJdTm1ZT0.net]
JavaScriptと書いてくれ、途中まで理解が噛み合わなかったわ笑

863 名前:デフォルトの名無しさん mailto:sage [2022/01/31(月) 12:58:13.56 ID:9LYQT6bkM.net]
JScriptでExcel.Applicationを扱うのは難しい!



864 名前:デフォルトの名無しさん mailto:sage [2022/01/31(月) 12:58:47.12 ID:e1XVzmlT0.net]
細かいこと言えば実際はJavaScriptというよりTypeScriptだけど
https://docs.microsoft.com/ja-jp/office/dev/scripts/develop/scripting-fundamentals

865 名前:デフォルトの名無しさん mailto:sage [2022/01/31(月) 13:07:08.11 ID:xK8RZLXxa.net]
>>855
銀河万丈の声で脳内再生されて草

866 名前:デフォルトの名無しさん [2022/02/01(火) 04:12:47.67 ID:BAkheZAsM.net]
>>845
ありがとうございます。

867 名前:デフォルトの名無しさん [2022/02/01(火) 18:51:32.45 ID:BTrEast20.net]
VBA 何もかもみな懐かしい。。

868 名前:デフォルトの名無しさん mailto:sage [2022/02/01(火) 20:43:06.80 ID:m1Otvt2w0.net]
GoogleのI'm Feeling Luckyボタンを押すために

objIE.document.GetElementsByClassName("〜")(0).click

って書いてちゃんとclassnameの名前を入れているのに実行してみたら
438 オブジェクトは、このプロパティまたはメソッドをサポートしていません。
って表示されて実行されません
idだったらちゃんと動作するのですがclassnameだと実行されません
目的はclassnameでのボタンの押し方を知る事なのでどうしてらいいのか教えてください

869 名前:デフォルトの名無しさん mailto:sage [2022/02/01(火) 21:42:08.98 ID:JauLxykcr.net]
独立したIf式が100個あるとして、どのIf式が処理をしたか最後にmsgboxで表示したいのですが、そういうことってできますか

870 名前:デフォルトの名無しさん [2022/02/01(火) 21:53:36.89 ID:NaaBd1FpM.net]
できる
はい、次

871 名前:デフォルトの名無しさん mailto:sage [2022/02/01(火) 21:53:41.40 ID:UmaqdsBP0.net]
各ifの処理の中でmsgboxに表示する番号なり何なりを変数に代入すればいいんじゃね

872 名前:デフォルトの名無しさん mailto:sage [2022/02/01(火) 23:48:27.08 ID:JauLxykcr.net]
>>865
If A1<>"" 〜
End if

現状上の式がただただ書かれているんだけなんですがどうしたらいいですか

873 名前:デフォルトの名無しさん mailto:sage [2022/02/01(火) 23:53:02.19 ID:mToNlmlwd.net]
マクロでマクロを書く

はい次



874 名前:デフォルトの名無しさん mailto:sage [2022/02/02(水) 00:04:57.15 ID:XK9gt2og0.net]
それはif文を理解していないという解釈でいいのか

875 名前:デフォルトの名無しさん [2022/02/02(水) 00:11:32.60 ID:WPZgN1IY0.net]
>>866
>>2を読め

876 名前:デフォルトの名無しさん mailto:sage [2022/02/02(水) 00:23:00.41 ID:DCaD8SVN0.net]
>>862
Document.getElementsByClassName()
https://developer.mozilla.org/ja/docs/Web/API/Document/getElementsByClassName

JavaScript なら、上のリンク先を見れば良いけど、
VBA では、書き方が異なるのかも

877 名前:デフォルトの名無しさん mailto:sage [2022/02/02(水) 07:28:52.11 ID:4nB6ciIN0.net]
>>870
ここからボタンを押すにはなんと書けばいいのでしょうか、、、?

878 名前:デフォルトの名無しさん mailto:sage [2022/02/02(水) 07:31:23.63 ID:f98ebtked.net]
この手の質問は悪用される可能性があるから回答するの躊躇するよね

879 名前:デフォルトの名無しさん mailto:sage [2022/02/02(水) 07:47:54.37 ID:DCaD8SVN0.net]
Ruby で、Selenium WebDriver なら、
driver.要素.click だけど、VBA は知らない

検索してみれば?

880 名前:デフォルトの名無しさん mailto:sage [2022/02/02(水) 07:49:20.30 ID:Sif5VXmLd.net]
>>871
学習目的なら他のサイトにしたら

881 名前:デフォルトの名無しさん [2022/02/02(水) 10:07:41.90 ID:wojfg/N6r.net]
こんなところにアホな質問するヤツらは

ググる能力さえ無いということなのか?

882 名前:デフォルトの名無しさん mailto:sage [2022/02/02(水) 11:13:58.55 ID:QFn3Myrbd.net]
ググったりして、その上で質問してると信じたい
スクレイピングとかブラウザの自動処理の質問だけど後者は悪用されるリスクが高いから答えたくないよね

883 名前:デフォルトの名無しさん mailto:sage [2022/02/02(水) 11:17:43.23 ID:wojfg/N6r.net]
違うよ
処理完了MsgBox を表示させるなんて
素人でもググって1分で作れるだろ



884 名前:デフォルトの名無しさん mailto:sage [2022/02/02(水) 11:38:37.34 ID:Ro/5oidY0.net]
>>875
最初は聞きまくった方が上達する
vbaはコードはアホみたいに簡単だけど、変なとこで敷居高いからな

885 名前:デフォルトの名無しさん mailto:sage [2022/02/02(水) 11:54:30.15 ID:34qMGLm0a.net]
>>878
なら答えてやれよw

886 名前:デフォルトの名無しさん mailto:sage [2022/02/02(水) 12:16:51.15 ID:QFn3Myrbd.net]
どんな言語もそうだけど敷居なんて高いと思ったことないよ
そもそもできないこともわからずにあれこれやろうとしてる人がそう思うだけでは

887 名前:デフォルトの名無しさん mailto:sage [2022/02/02(水) 12:26:36.37 ID:h1+1MA/aM.net]
Excelを操作するための言語で
なぜブラウザを操作しているのか?
もっと良い方法があったのではないか?
手を動かす前にほんの少しは考えたほうが良かったのではないか?

888 名前:デフォルトの名無しさん mailto:sage [2022/02/02(水) 12:27:02.36 ID:43zIf/SN0.net]
答えたい人は答えて答えたくない人はスルーしておけば良いと思う
答えないのに偉そうにしてる人は解らないのに偉そうにしている人と同じだし

889 名前:デフォルトの名無しさん mailto:sage [2022/02/02(水) 12:38:30.87 ID:PFGno9cc0.net]
>>877
>>863の質問から、
「処理完了MsgBox を表示させる」ことが質問の本質だと思うわけね

890 名前:デフォルトの名無しさん mailto:sage [2022/02/02(水) 12:58:44.52 ID:h1+1MA/aM.net]
お題は100個のif文を書き換えずにどれが処理されたかを当てるクイズね

891 名前:デフォルトの名無しさん [2022/02/02(水) 13:00:17.51 ID:mSZ4QSD40.net]
各、End If の前に、IF 番号を変数として代入する
一行を記述する。

892 名前:デフォルトの名無しさん mailto:sage [2022/02/02(水) 13:31:44.29 ID:QFn3Myrbd.net]
100個のif文はどういう出し方したいかにもよるけど抜ける考慮はさておき
dim msgno as long
if 条件1 then
 msgno=1
end if
if 条件2 then
 msgno=2
end if
call MsgBox(msgno)
ってやるだけでしょ
そうではなくどのif文が動いたかであれば適当に動いた個所がわかる変数を用意して同じように表示すればいいだけかと

>>882
リスクあるから答えないってのも立派な回答だと思うけどね
それを偉そうと思うのならそう思ってもらって結構だけど

893 名前:デフォルトの名無しさん mailto:sage [2022/02/02(水) 13:31:48.33 ID:Ro/5oidY0.net]
>>863
フラグを外に出したほうが良いか考えたけど、もういいかなって
ってか本当にやりたいことはステップインって機能では

Sub foo()

bar = ""
If A1 <> "" Then
bar = bar & "If A1 <> """" Then"
bar = bar & vbCrLf
End If

If b1 <> "" Then
bar = bar & "If b1 <> """" Then"
bar = bar & vbCrLf
End If

MsgBox bar
End Sub

>>879
たまってたのね



894 名前:デフォルトの名無しさん mailto:sage [2022/02/02(水) 13:41:28.48 ID:h1+1MA/aM.net]
それじゃあ >>868 の言うように
私の子がバカみたいじゃないですか!

895 名前:デフォルトの名無しさん [2022/02/02(水) 13:42:27.00 ID:mSZ4QSD40.net]
IF 式自体を、MsgBox に表示したいのなら
100個の式の一覧をつくって、

Const にして100個記述すればよいかと。
そっちのほうが早い。

896 名前:デフォルトの名無しさん [2022/02/02(水) 14:24:28.77 ID:mSZ4QSD40.net]
Const IF001 = "If A1 <> """" Then"
Const IF002 = "If B1 <> """" Then"
・・・
・・・(100個記述)

Sub Test()

 If A1 <> "" Then  〜
   RSLT = IF001
 End If

 If B1 <> "" Then  〜
   RSLT = IF002
 End If

・・・・・

 MsgBox RSLT
End Sub

こんな感じかな。
スマホだと書きづらいわ…

897 名前:デフォルトの名無しさん mailto:sage [2022/02/02(水) 14:25:53.07 ID:Ro/5oidY0.net]
VBAってevalなかったっけ
あれをフラグに入れれば完結になるんだけどな

898 名前:デフォルトの名無しさん [2022/02/02(水) 14:31:06.05 ID:mSZ4QSD40.net]
IF文を全部、シートにコピペ→ソートしてやれば
Const を100個書くのは、3分でできるかな。

899 名前:デフォルトの名無しさん mailto:sage [2022/02/02(水) 14:32:20.83 ID:h1+1MA/aM.net]
もっとメンタリストみたいにスマートに当てる方法はないのですか?
あなた達のスキルにはがっかりデス

900 名前:デフォルトの名無しさん [2022/02/02(水) 14:36:33.27 ID:mSZ4QSD40.net]
プロシージャの中身も全部、シートにコピペして
変数の一行を100個挿入してやれば
10分かからないね。

901 名前:デフォルトの名無しさん [2022/02/02(水) 14:38:34.78 ID:wojfg/N6r.net]
くれくれ乞食がうぜえな

お前が書けよ

902 名前:デフォルトの名無しさん [2022/02/02(水) 14:59:23.76 ID:wojfg/N6r.net]
そもそも、IF文100コってなんだよw
無能が書いたのか?

903 名前:デフォルトの名無しさん mailto:sage [2022/02/02(水) 19:16:31.19 ID:4nB6ciIN0.net]
vbaでieの操作に成功しました
そして目的の通知バーを出してキー操作をさせるためにsendkeyを入力しているのですがExcelの方がキー操作されてしまいます
これは待ち時間がないからですか?



904 名前:デフォルトの名無しさん mailto:sage [2022/02/02(水) 19:27:47.16 ID:SglXGK6G0.net]
そう思うならタイマとか入れてどうなったか書けよ

905 名前:デフォルトの名無しさん mailto:sage [2022/02/02(水) 19:32:10.25 ID:4mbUlsYd0.net]
みんなは過去に作った関数ライブラリって、標準モジュールで
管理(インポートorエクスポート)しているかんじ?
クラスモジュールで管理したらだめ?

906 名前:デフォルトの名無しさん mailto:sage [2022/02/02(水) 19:42:36.70 ID:7tA3nICW0.net]
>>897
もしライブラリの追加が可能な環境ならSeleniumbasic使った方が簡単で確実に動作するぞ

907 名前:デフォルトの名無しさん mailto:sage [2022/02/02(水) 20:08:51.32 ID:gm4r/aDEa.net]
>>897
そりゃ、IEに送らないとだめだわなw

908 名前:デフォルトの名無しさん mailto:sage [2022/02/02(水) 20:31:24.68 ID:lYAq0wM7r.net]
>>887
ありがとうございます。
まさに理想通りのやつです。助かりました

909 名前:デフォルトの名無しさん mailto:sage [2022/02/02(水) 21:08:49.40 ID:4bGMKLpw0.net]
>>899
やり方は色々あると思うけどその方法なら
用途によって標準モジュールでもクラスモジュールでも使い分けで管理すればいいと思う。

別の方法としてはツールとしてスケルトンのブックを作っておいて
その中に色んなモジュールを入れておいてコピーして必要なもの以外は削除して使う方法、
アドインブックを作っておいて参照を切って使う方法とかもある。

910 名前:デフォルトの名無しさん mailto:sage [2022/02/02(水) 21:12:04.30 ID:sT0aKZOxd.net]
めんどくさいから win+vでピン留めしてるわ

911 名前:デフォルトの名無しさん mailto:sage [2022/02/02(水) 21:53:01.49 ID:Ro/5oidY0.net]
>>899
googleスプレッドシートに書いておいて、そこからコピペ
vbaの場合、関数というよりも、
高速化や最終行の取得など、関数よりも細かい部分で欲しいものが多い

912 名前:デフォルトの名無しさん mailto:sage [2022/02/03(木) 00:25:24.67 ID:qiNMcHyb0.net]
>>903-905
なるほど。結構、人によってやり方が違うもんなんだな。
勉強になります!

913 名前:デフォルトの名無しさん mailto:sage [2022/02/03(木) 00:38:31.96 ID:tbES4bxer.net]
そんなん、メモ帳でよくね?



914 名前:デフォルトの名無しさん mailto:sage [2022/02/03(木) 00:41:32.16 ID:tkF05tCjd.net]
いつもの奴だぞ

915 名前:デフォルトの名無しさん mailto:sage [2022/02/03(木) 03:56:49.74 ID:32hviewX0.net]
>>897
VBAならスクレイピングを組むのに視覚的に動作確認できるけど、

慣れてきたらぜひpythonでchrome環境で同じような処理を再現してほしい

事務職の現場でもieだと対応してないサイトとかあったりしてクローリングはchromeの方が重宝されるんだ

916 名前:デフォルトの名無しさん mailto:sage [2022/02/03(木) 09:21:08.30 ID:hHsifBpa0.net]
メモ帳で思い出したが、秀丸エディタってどうなの??
知人が秀丸使え使えってうるさいから

917 名前:デフォルトの名無しさん mailto:sage [2022/02/03(木) 09:30:09.86 ID:Nd7AcXHS0.net]
>>910
VSCodeが一般化した昨今ではオワコン化が進んでる気がする。
未だにテキストエディタとしては使ってるけど、コードエディタとしてはちょっと厳しいのではないかと思ってる。

918 名前:デフォルトの名無しさん mailto:sage [2022/02/03(木) 10:19:29.46 ID:Z7zOJE1W0.net]
>>910
閉じてもそのまま再開できる+タブ表示+シンタックスハイライト(文字色)が出来るものなら何でも良いと思う
メモ帳に比べたら秀丸は普通に便利
俺はsublimetext、atom、eclipce使ってるけど、全部オワコン臭が凄い

VScodeはプラグイン多くて使いやすいと思う

919 名前:デフォルトの名無しさん mailto:sage [2022/02/03(木) 12:04:33.95 ID:hHsifBpa0.net]
うーん。とりあえずメモ帳でいっかな。
なるべく無料のアプリ使いたいし。
ケチが一番!

920 名前:デフォルトの名無しさん mailto:sage [2022/02/03(木) 12:06:23.06 ID:pSX7/s4D0.net]
サクラエディタ使いやすいね

921 名前:デフォルトの名無しさん mailto:sage [2022/02/03(木) 12:11:30.24 ID:c9OHCnJld.net]
Notepad++だな
タブでもやれるけど左枠に文書一覧表示が自分には合ってた
縦タブやお気に入り機能のようにファイルを扱える

922 名前:デフォルトの名無しさん mailto:sage [2022/02/03(木) 12:31:17.48 ID:hHsifBpa0.net]
若い連中にはOneNoteが流行りなのかなと

923 名前:デフォルトの名無しさん mailto:sage [2022/02/03(木) 13:12:28.58 ID:akJYuSUB0.net]
>>913
VCcodeはタダだよ
メモ帳は多分一番難易度高いんじゃないかと思う 焦



924 名前:デフォルトの名無しさん mailto:sage [2022/02/03(木) 13:49:08.79 ID:Z7zOJE1W0.net]
>>917
VScodeな

>>915
実は俺も使ってる。そんな便利な機能あったんだ!
https://i.imgur.com/AGCZICl.png

メモ代わりに使ってるワイ、無事死亡

925 名前:デフォルトの名無しさん mailto:sage [2022/02/03(木) 13:54:30.19 ID:advF3NKUM.net]
VSCode入れていいような環境でわざわざVBAなんか使う必要なくね?自由が利くなら他にいくらでも選択肢あるじゃん
拡張機能で得体の知れないOSSがモリモリ入る超危険ソフトウェアだぞ

926 名前:デフォルトの名無しさん mailto:sage [2022/02/03(木) 13:59:55.10 ID:Z7zOJE1W0.net]
>>919
中小企業はやっぱりエクセルになってしまうので・・・・
使わずに基幹ソフトだけで済めば、どれだけ良いことか

>超危険ソフトウェア
これ言い出すとあらゆるソフトが、ね

927 名前:デフォルトの名無しさん mailto:sage [2022/02/03(木) 14:44:10.97 ID:CBKIfEX60.net]
VBA使う理由の半分はエクセルスプレッドシートとの連携だし

928 名前:デフォルトの名無しさん mailto:sage [2022/02/03(木) 15:12:55.32 ID:1AlNHnvf0.net]
まあそうだね
Excel上でアウトプットしないならVBA以外がいいと思うは

929 名前:デフォルトの名無しさん mailto:sage [2022/02/03(木) 15:39:55.47 ID:OCu5/hNR0.net]
EXCEL VBAのスレでスレ違いで悪いんだけど
話ついでに、VS.codeってトレースも出来るんだっけ?

930 名前:915 mailto:sage [2022/02/03(木) 16:14:10.02 ID:c9OHCnJld.net]
>>918

そうこれ
他に同じ事が出来るエディタも有るかもだけど軽いし今んとここれ一択だわ

931 名前:デフォルトの名無しさん [2022/02/03(木) 16:15:44.17 ID:/TAKaoAN0.net]
>>923
馬鹿は消えろ

932 名前:デフォルトの名無しさん mailto:sage [2022/02/03(木) 16:28:13.06 ID:OCu5/hNR0.net]
自己解決。出来るね。

>>925
いきなりどうしたの?高齢期障害?

933 名前:デフォルトの名無しさん mailto:sage [2022/02/03(木) 16:52:05.79 ID:RpJDoNdN0.net]
VSCode
https://i.imgur.com/qTVwaIg.png



934 名前:デフォルトの名無しさん mailto:sage [2022/02/03(木) 17:47:56.55 ID:hHsifBpa0.net]
超危険と言えば昔のExcelってそうだった記憶ある
確かExcelを狙ったウィルスがあったような??

935 名前:デフォルトの名無しさん [2022/02/03(木) 18:15:38.24 ID:/TAKaoAN0.net]
>>926
自分の書き込みを読み返せ、馬鹿

936 名前:デフォルトの名無しさん mailto:sage [2022/02/03(木) 18:24:46.05 ID:akJYuSUB0.net]
>>928
マクロウイルスのことかな

937 名前:デフォルトの名無しさん mailto:sage [2022/02/03(木) 18:37:27.74 ID:OCu5/hNR0.net]
>>929
なんだやっぱりちょっとした話の流れに便乗した質問も許容出来ない高齢期障害の爺か
そんなにイライラしてると高血圧で脳溢血になるぞ

938 名前:デフォルトの名無しさん mailto:sage [2022/02/03(木) 19:16:08.09 ID:qZuoLMNW0.net]
マクロだけだっけ、覚えてないわ

939 名前:デフォルトの名無しさん mailto:sage [2022/02/03(木) 21:24:18.10 ID:Mvkv/5Wv0.net]
マクロウィルスはラルーだっけな?
それもあったけど、なんかのウィルスだった覚えがあります。
入力した値や文字列が文字化けするウィルス

940 名前:デフォルトの名無しさん mailto:sage [2022/02/04(金) 17:29:19.29 ID:/9L9fpIb0.net]
10弱ほどの複数のシートの同じ行を、まとめて選択してDeleteしているのですが
シート1枚につき18秒ほど掛かるようになって、シート全体で3分以上Excelが固まった状態になります
行では無く範囲をUnionで選択しても速度は変わりませんでした
Clearcontentsすれば速いんですが、その後CSVにして読み込ませる必要があり
ただ消しただけだと、Deleteされた行までデータが存在する事になってしまっていて、支障があります
Clearcontentsした後、VBA側で空欄の行をDelete以外で詰める方法は無いでしょうか

941 名前:デフォルトの名無しさん mailto:sage [2022/02/04(金) 17:34:09.06 ID:/YpTyf1v0.net]
↑コピペ

942 名前:デフォルトの名無しさん mailto:sage [2022/02/04(金) 17:49:25.28 ID:/9L9fpIb0.net]
コピペって何が?

943 名前:デフォルトの名無しさん [2022/02/04(金) 18:12:14.30 ID:pHRCGz/X0.net]
>>931
読み返しても問題に気付かない馬鹿か?



944 名前:デフォルトの名無しさん [2022/02/04(金) 20:33:02.02 ID:mH27gNw80.net]
諸先輩方に質問です。
VBAの勉強を始めたばかりで的外れなところはご容赦ください。
BeforeRightClickで記述するということはわかりました。

シート3のE4:H14とN4:Q14の範囲において、
セルを右クリックで黄色く塗る、もういちど右クリックすると塗りつぶしを無色にする
ということをやりたいのです。
同時に右クリックのメニューも表示しなくなるようプログラムしたいです。
塗りつぶすセルは毎回異なるセルです。

日々の作業で特定の範囲内でセルを黄色く塗る作業が多くあります。
これをペンキボタンを使わずにできると作業効率があがるかと思います。
皆様には簡単すぎるかと思いますがどうぞよろしくお願いします。

945 名前:デフォルトの名無しさん mailto:sage [2022/02/04(金) 20:40:52.99 ID:AMkz1drU0.net]
直の回答で無くてすまんがショートカットキー使った方が便利な気がする

946 名前:デフォルトの名無しさん mailto:sage [2022/02/04(金) 21:30:10.84 ID:wpZeT9bxM.net]
>934
実際のコードはどんな感じ?
シート選択して該当行を削除してるなら、当然遅い。

947 名前:デフォルトの名無しさん mailto:sage [2022/02/04(金) 21:33:46.72 ID:wpZeT9bxM.net]
>>938
右クリックにマクロ割り当てるより、既に回答ついてるようにキーボードショートカットに割り当てるか、イベントのダブルクリックなんかに割り当てる方が良いと思います。
他にも色々したいならユーザーフォームを使うのもありかと。

948 名前:デフォルトの名無しさん mailto:sage [2022/02/04(金) 21:36:40.60 ID:Zgf6kB1T0.net]
>>938
多分こんな感じ

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
色 = 65535
If Not (Intersect(Target, Union(Range("E4:H14"), Range("N4:Q14"))) Is Nothing) Then
Cancel = True 'コンテキストメニューなし
If Target.Interior.Pattern = xlNone Then
Target.Interior.Color = 色
Else
Target.Interior.Pattern = xlNone
End If
Else
Cancel = False '範囲外ならコンテキストメニュー復帰
End If
End Sub

949 名前:デフォルトの名無しさん mailto:sage [2022/02/04(金) 21:38:14.51 ID:Zgf6kB1T0.net]
一応書けたけど、バグったらごめんね~って感じはある
コンテキストメニューの非表示は、何か良くない事が起こる気がする
ショートカットに割り当てといたほうが良いと思うなぁ

950 名前:デフォルトの名無しさん [2022/02/04(金) 21:52:01.87 ID:mH27gNw80.net]
>>942
ありがとうございます、
試してみたところ、問題なく動きました。
素早いレス感謝します。

>>939
>>941
ありがとうございました。
ショートカットキーも併せて検討してみます

951 名前:デフォルトの名無しさん mailto:sage [2022/02/04(金) 21:59:19.78 ID:Zgf6kB1T0.net]
>>942で一個だけ迷ったのが、
Cancel = True 'コンテキストメニューなし
の行
これ、今の場所に書くべきか、以下の間が良かったのか、どっちだろう
End If
Else

なんとなく後者の方が良いかと思ったけど、具体的な理由は特に無い

952 名前:デフォルトの名無しさん mailto:sage [2022/02/04(金) 22:00:37.50 ID:hsiPC1r9M.net]
>>942
勉強になるわ

953 名前:デフォルトの名無しさん mailto:sage [2022/02/04(金) 22:07:39.34 ID:hsiPC1r9M.net]
>>945
色塗りが先か非表示が先かってことでしょ?
どっちでも良い気がするけど



954 名前:デフォルトの名無しさん mailto:sage [2022/02/04(金) 22:20:18.23 ID:Zgf6kB1T0.net]
>>947
そうそう、どっちでもいい
だけど、エラーの発生や可読性などを考慮した時、どっちがいいかなと思って
こういう時に迷わずに書けるようになりたい

955 名前:デフォルトの名無しさん mailto:sage [2022/02/04(金) 22:27:16.08 ID:MwWgLKiA0.net]
>>938
向上心あって良いね、自分は動きゃええわって感じだからなぁ 笑
それもあってここ抜いちゃうかもって思った
Else
Cancel = False '範囲外ならコンテキストメニュー復帰

956 名前:デフォルトの名無しさん mailto:sage [2022/02/05(土) 02:19:12.27 ID:6OPkdc9C0.net]
>>940
レスありがとうございます
シートを一枚ずつ削除してからDeleteを試していったら、特定のシートの有無で大きな変化があったので
重くなる理由で調べていったら、条件付き書式がセルのコピペで勝手にどんどん増殖していく というのがまさにそれでした
Deleteとかは関係なかったみたいです、失礼いたしました

957 名前:デフォルトの名無しさん mailto:sage [2022/02/05(土) 03:34:09.74 ID:Bcit2bMf0.net]
勝手に増殖したらウイルスみたいだな、そもそもコピペで(条件付き)書式もコピーされるのは正常動作だし

958 名前:デフォルトの名無しさん mailto:sage [2022/02/05(土) 14:27:20.74 ID:NvgV3V+H0.net]
365インサイダー板、久しぶりに更新きた

959 名前:デフォルトの名無しさん [2022/02/06(日) 04:25:59.05 ID:4j2iEgx50.net]
EXCEL2021のエラーダイアログに「デバッグ」ボタンがないんだけど、
どうすれば表示されるようになります?

960 名前:デフォルトの名無しさん mailto:sage [2022/02/06(日) 17:12:52.54 ID:5H6ThRiB0.net]
>>953
スクリーンショット見せてほしい

961 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 11:59:42.81 ID:dtTrWMUA0.net]
新しいバージョンは、バグがあるからねぇ…
使わないに限る

962 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 12:13:58.84 ID:PizflsNCM.net]
全面的に使用禁止

963 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 14:36:18.09 ID:L5SqTIhE0.net]
そういい続けて今でもExcel2003使っている



964 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 17:16:58.35 ID:clNFinzC0.net]
VBA内で今まで使えてたKillが急に使えなくなった。
Excel13に戻すと使えるけど、俺が頃されたのか。

965 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 17:38:36.22 ID:N54aEDvt0.net]
概念が殺された

966 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 17:41:13.85 ID:2n7cflzo0.net]
>>958
ファイルやフォルダのアクセス権は大丈夫なんか?

967 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 18:07:58.36 ID:Zblf2oZud.net]
>>958
エラーコードとかもどってきてないの?

968 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 18:21:22.94 ID:clNFinzC0.net]
実行時エラー70
書き込みできません

プログラム内で作った作業用のファイルを終了直前に削除する部分が効かなくなった。
もう帰っちゃったしアクセス権とかは調べてないや。でもファイルは作れるしな。
先月までは普通に動いてたし別なPCでも同じ結果なんだな。

969 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 18:30:16.04 ID:1qSznfbA0.net]
>>958
「実行時エラー70書き込みできません kill」
で検索したら色々出てきた
多分開きっぱなしになっているので、.closeかなんかで閉じると良いと思う

970 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 18:44:59.26 ID:UL1lTxQ90.net]
ウイルスチェックやフォルダの同期(GoogleDrive)が邪魔してくれる事は良くある

971 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 20:17:13.59 ID:rYqCZzs10.net]
田中氏、いきなりようつべに復活したぽい

972 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 21:53:43.66 ID:2n7cflzo0.net]
>>962
そのファイルを誰かが開いてる

場合によってはエクスプローラーが開きっぱなしにすることがある
テンポラリフォルダの表示形式を一覧か詳細に変えてから閉じてみ

973 名前:デフォルトの名無しさん mailto:sage [2022/02/08(火) 07:57:31.61 ID:Kw22iHFld.net]
>>962
ファイルを削除直前まで開いてたりすると削除で使用中の扱いになったりすることがあるから
ファイルを閉じる>Sleepで2秒程度またせる>削除
のようにするといいかもしれない。
自分はいつもこうしてる



974 名前:デフォルトの名無しさん mailto:sage [2022/02/08(火) 22:22:07.82 ID:VQAPYvrL0.net]
ダウンロードファイルのVBAマクロをデフォルト無効化。Officeに仕様変更
https://pc.watch.impress.co.jp/docs/news/1386777.html

975 名前:デフォルトの名無しさん mailto:sage [2022/02/09(水) 07:37:52.77 ID:Fae4IrPy0.net]
ダウンロードファイルなら無効にしておいたほうがいいだろうけど、
すぐに有効にしそう

976 名前:デフォルトの名無しさん mailto:sage [2022/02/09(水) 09:21:32.50 ID:9BkbymyAM.net]
>>969
使うためにダウンするから難しいところだよね

977 名前:デフォルトの名無しさん mailto:sage [2022/02/09(水) 09:47:40.14 ID:mKkfmqYvd.net]
社内のサイトからだとめんどくさいけどやらかすやつがいる以上はアプリ側でこういう対策をしてくれるのはありがたい
ファイルごとの指定だろうから既定値無効でいいと思うね

978 名前:デフォルトの名無しさん mailto:sage [2022/02/09(水) 09:50:35.22 ID:RWuYGaqJ0.net]
こっそり入ってくるのを防ぐのが目的なんだから、マクロの存在をユーザーが認識できてるかどうかでしょ
自分で設定を切れるレベルの人は問題ないとみなすので、自己責任でどうぞ切って下さいってスタンス

979 名前:デフォルトの名無しさん mailto:sage [2022/02/09(水) 10:56:38.64 ID:9BkbymyAM.net]
>>972
ウイルス単独というか元々あるVBAのコードを改編されるからコードが読めないと判断出来ないと思うよ

980 名前:デフォルトの名無しさん mailto:sage [2022/02/09(水) 11:20:58.48 ID:bDyl2u0GM.net]
完璧に対策するのは不可能だから、まずは「添付の資料を見て下さい」っていう犯人からのメールきっかけで侵入されるパターンを想定してるのでは

981 名前:デフォルトの名無しさん [2022/02/09(水) 12:06:08.78 ID:kbHLXdYh0.net]
マクロを理解してる人は、メールとかで送られてくる
Excelファイルなんて開かないけど、無能な素人が
開いちゃって、社内にウイルスがばら撒かれるから
無能のヒューマンエラー防止のための策でしょ?

982 名前:デフォルトの名無しさん mailto:sage [2022/02/09(水) 12:22:38.83 ID:j8hQF/oi0.net]
公開されているcsvを読込むマクロで
csvファイルからウイルス広まる事例って
あるのかしら?

983 名前:デフォルトの名無しさん mailto:sage [2022/02/09(水) 13:40:36.30 ID:LKLk4DLKa.net]
リンクを手当り次第クリックしちゃうアホがいるからね



984 名前:デフォルトの名無しさん mailto:sage [2022/02/09(水) 13:43:15.59 ID:Fae4IrPy0.net]
誤クリを防ぐって意味ならたしかにかなり有用だと思う

>>976
言ってる意味がよく分からんが、
マクロはものすごくウィルスを添付しやすい
サイトで公開されているマクロ付きのエクセルファイルなんて開いちゃダメだぞ
コードを読んで、コピーして問題なければ使うのが基本だ

985 名前:デフォルトの名無しさん mailto:sage [2022/02/09(水) 14:04:41.56 ID:j8hQF/oi0.net]
>>978
ああ。
.xlsmファイルをメールで送るつもりはさらさらなくて。

けど、
e-statなんかで公開されているcsvファイルを
読込んで処理するマクロを組んだ.xlsmファイルも
デフォルトでは開く度に毎回警告されるものだから。

986 名前:デフォルトの名無しさん mailto:sage [2022/02/09(水) 14:20:22.38 ID:RWuYGaqJ0.net]
CSVは単なるテキストファイルだから、それ自体には感染能力はないけど、わざと文字化けさせたり巨大なデータを混入させてといて、読み込むアプリを誤作動されられる可能性ならある
簡単に実験できる範囲だと、セル内改行が大量にあるだけでExcelがプチフリするしね

987 名前:デフォルトの名無しさん mailto:sage [2022/02/09(水) 14:20:22.44 ID:Z/7LO9MU0.net]
CSVに関数を書き込んで読み込んだExcelがそれを実行するって事例があった

988 名前:デフォルトの名無しさん mailto:sage [2022/02/09(水) 14:25:00.32 ID:I0u44nFvd.net]
Excel VBA 質問スレ Part75
https://mevius.5ch.net/test/read.cgi/tech/1644384272/

989 名前:デフォルトの名無しさん mailto:sage [2022/02/09(水) 14:27:15.27 ID:RWuYGaqJ0.net]
>>981
さすがにワークシート関数だけじゃ感染は無理なのでは
使用者を混乱させて誤操作を誘発するとかやらないと

990 名前:デフォルトの名無しさん mailto:sage [2022/02/09(水) 15:29:31.91 ID:h7C3sgPu0.net]
>>982
なんたる有能

991 名前:デフォルトの名無しさん [2022/02/09(水) 15:41:42.37 ID:F+qQsHczr.net]
大昔、2chの草創期に大流行した

ブラクラみたいな感じ

992 名前:デフォルトの名無しさん mailto:sage [2022/02/09(水) 18:27:17.30 ID:2Z/3/DW40.net]
古いExcelは拡張子.xls でもマクロ書けたのと、test.csv.xls みたいなファイル名でOS設定で拡張子を表示しないとか
されていると気づかないで実行されることがあった

993 名前:デフォルトの名無しさん [2022/02/09(水) 19:24:18.78 ID:KYojXGCr0.net]
どうすれば先頭の画像をクリックできるのでしょうか?
Sub func()
Dim url As String: url = "https://e-hentai.org/g/1727798/1f



994 名前:be77a0a2/"
Dim buffer As String: buffer = ""
Dim objLink As Object
Dim objIE As InternetExplorer
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Visible = False
objIE.navigate (url)
Do While objIE.Busy Or objIE.readyState <> READYSTATE_COMPLETE
DoEvents
Loop
Call WaitFor(3) ' wait for 3 seconds
buffer = objIE.document.getElementsByClassName("gdtm").outerHTML
Cells(1, 1).Value = buffer
objIE.Quit
Set objIE = Nothing
End Sub

Function WaitFor(ByVal second As Integer)
Dim futureTime As Date: futureTime = DateAdd("s", second, Now)
While Now < futureTime
DoEvents
Wend
End Function
[]
[ここ壊れてます]

995 名前:デフォルトの名無しさん mailto:sage [2022/02/09(水) 19:45:46.68 ID:Fae4IrPy0.net]
>>987
ここから進まない
Do While objIE.Busy Or objIE.readyState <> READYSTATE_COMPLETE
DoEvents
Loop

最終的に何がしたいの?スクレイピング(画像のダウンロード)?

996 名前:デフォルトの名無しさん mailto:sage [2022/02/09(水) 19:48:05.28 ID:Fae4IrPy0.net]
ダウンロードなら、右の「Archive Download」からダウンロードできるぽいのでそこで試してみては

997 名前:デフォルトの名無しさん mailto:sage [2022/02/09(水) 21:24:05.75 ID:Z/7LO9MU0.net]
buffer = objIE.document.getElementsByClassName("gdtm").outerHTML

buffer = objIE.document.getElementsByClassName("gdtm")(0).outerHTML

みたいに添え字が必要。先頭だけでいいなら0

ちなみに、objIE.document.getElementsByClassName("gdtm").Length で何個あるかわかる
全部ほしければループする

リンク先が欲しいなら、outerHTMLじゃなくて、aタグのhrefだけ取得すればいいと思うよ
hoge = objIE.document.getElementsByClassName("gdtm")(0).getElementsByTagName("a")(0).href

あとは、objIE.navigate (hoge) でリンク先に飛ぶ

998 名前:デフォルトの名無しさん mailto:sage [2022/02/09(水) 21:40:08.30 ID:RWuYGaqJ0.net]
>>987
そもそもe-hentai.orgはスクレイピング対策がけっこうキツめだからそんな単純な方法ではだめだったはず

999 名前:デフォルトの名無しさん mailto:sage [2022/02/09(水) 21:44:33.64 ID:oSWjz80sa.net]
.click

1000 名前:デフォルトの名無しさん mailto:sage [2022/02/09(水) 22:14:49.52 ID:MpMYHHoEd.net]
どんな画像かわからんけど漫画なら作者なりが訴えたらまとめて賠償請求されるかもしれんのに
よく回答するねw

1001 名前:デフォルトの名無しさん mailto:sage [2022/02/09(水) 22:20:10.16 ID:dWa1kwqW0.net]
だって、教えたがりおじさんおばさんの巣窟だもん

1002 名前:デフォルトの名無しさん mailto:sage [2022/02/09(水) 22:31:13.14 ID:WQvIAEnaM.net]
回答者に賠償請求ですって?法律を知らない子はおかしなことをおっしゃるのね

1003 名前:デフォルトの名無しさん mailto:sage [2022/02/09(水) 22:43:06.13 ID:qWGRAcWA0.net]
質問者はどうしたらクリックできるか訊いてるんだけどね
なぜかダウンロードだのどうしたいだの



1004 名前:デフォルトの名無しさん [2022/02/10(木) 01:00:09.82 ID:hZgX7eKD0.net]
マウスつなげる

1005 名前:デフォルトの名無しさん mailto:sage [2022/02/10(木) 07:30:31.61 ID:j0eZpZqg0.net]
If cnt=1000 Then MsgBox "ぬるぽ", vbOkOnly+vbCritical

1006 名前:94 mailto:sage [2022/02/10(木) 09:01:43.57 ID:YAVEwoPsM.net]
vbaでWordの2ページ目にある表の中の文字列をエクセル転記したいです。
Wordの操作はできそうなのですが文字をどこまで細かく引っ張れるのでしょうか

1007 名前:デフォルトの名無しさん mailto:sage [2022/02/10(木) 09:33:43.50 ID:cXcP1CjO0.net]
>>999
条件次第

1008 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 52日 7時間 52分 44秒

1009 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<287KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef