Excel VBA 質問スレ Part74

レス数が1000を超えています。これ以上書き込みはできません。
2021/12/20(月) 01:40:59.22ID:jnlr9GaR0
!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
2022/02/03(木) 00:25:24.67ID:qiNMcHyb0
>>903-905
なるほど。結構、人によってやり方が違うもんなんだな。
勉強になります!
2022/02/03(木) 00:38:31.96ID:tbES4bxer
そんなん、メモ帳でよくね?
2022/02/03(木) 00:41:32.16ID:tkF05tCjd
いつもの奴だぞ
2022/02/03(木) 03:56:49.74ID:32hviewX0
>>897
VBAならスクレイピングを組むのに視覚的に動作確認できるけど、

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

事務職の現場でもieだと対応してないサイトとかあったりしてクローリングはchromeの方が重宝されるんだ
2022/02/03(木) 09:21:08.30ID:hHsifBpa0
メモ帳で思い出したが、秀丸エディタってどうなの??
知人が秀丸使え使えってうるさいから
2022/02/03(木) 09:30:09.86ID:Nd7AcXHS0
>>910
VSCodeが一般化した昨今ではオワコン化が進んでる気がする。
未だにテキストエディタとしては使ってるけど、コードエディタとしてはちょっと厳しいのではないかと思ってる。
2022/02/03(木) 10:19:29.46ID:Z7zOJE1W0
>>910
閉じてもそのまま再開できる+タブ表示+シンタックスハイライト(文字色)が出来るものなら何でも良いと思う
メモ帳に比べたら秀丸は普通に便利
俺はsublimetext、atom、eclipce使ってるけど、全部オワコン臭が凄い

VScodeはプラグイン多くて使いやすいと思う
2022/02/03(木) 12:04:33.95ID:hHsifBpa0
うーん。とりあえずメモ帳でいっかな。
なるべく無料のアプリ使いたいし。
ケチが一番!
2022/02/03(木) 12:06:23.06ID:pSX7/s4D0
サクラエディタ使いやすいね
2022/02/03(木) 12:11:30.24ID:c9OHCnJld
Notepad++だな
タブでもやれるけど左枠に文書一覧表示が自分には合ってた
縦タブやお気に入り機能のようにファイルを扱える
2022/02/03(木) 12:31:17.48ID:hHsifBpa0
若い連中にはOneNoteが流行りなのかなと
2022/02/03(木) 13:12:28.58ID:akJYuSUB0
>>913
VCcodeはタダだよ
メモ帳は多分一番難易度高いんじゃないかと思う 焦
2022/02/03(木) 13:49:08.79ID:Z7zOJE1W0
>>917
VScodeな

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

メモ代わりに使ってるワイ、無事死亡
2022/02/03(木) 13:54:30.19ID:advF3NKUM
VSCode入れていいような環境でわざわざVBAなんか使う必要なくね?自由が利くなら他にいくらでも選択肢あるじゃん
拡張機能で得体の知れないOSSがモリモリ入る超危険ソフトウェアだぞ
2022/02/03(木) 13:59:55.10ID:Z7zOJE1W0
>>919
中小企業はやっぱりエクセルになってしまうので・・・・
使わずに基幹ソフトだけで済めば、どれだけ良いことか

>超危険ソフトウェア
これ言い出すとあらゆるソフトが、ね
2022/02/03(木) 14:44:10.97ID:CBKIfEX60
VBA使う理由の半分はエクセルスプレッドシートとの連携だし
2022/02/03(木) 15:12:55.32ID:1AlNHnvf0
まあそうだね
Excel上でアウトプットしないならVBA以外がいいと思うは
2022/02/03(木) 15:39:55.47ID:OCu5/hNR0
EXCEL VBAのスレでスレ違いで悪いんだけど
話ついでに、VS.codeってトレースも出来るんだっけ?
2022/02/03(木) 16:14:10.02ID:c9OHCnJld
>>918

そうこれ
他に同じ事が出来るエディタも有るかもだけど軽いし今んとここれ一択だわ
925デフォルトの名無しさん (ワッチョイ 668e-ltXr)
垢版 |
2022/02/03(木) 16:15:44.17ID:/TAKaoAN0
>>923
馬鹿は消えろ
2022/02/03(木) 16:28:13.06ID:OCu5/hNR0
自己解決。出来るね。

>>925
いきなりどうしたの?高齢期障害?
2022/02/03(木) 16:52:05.79ID:RpJDoNdN0
VSCode
https://i.imgur.com/qTVwaIg.png
2022/02/03(木) 17:47:56.55ID:hHsifBpa0
超危険と言えば昔のExcelってそうだった記憶ある
確かExcelを狙ったウィルスがあったような??
929デフォルトの名無しさん (ワッチョイ 668e-ltXr)
垢版 |
2022/02/03(木) 18:15:38.24ID:/TAKaoAN0
>>926
自分の書き込みを読み返せ、馬鹿
2022/02/03(木) 18:24:46.05ID:akJYuSUB0
>>928
マクロウイルスのことかな
2022/02/03(木) 18:37:27.74ID:OCu5/hNR0
>>929
なんだやっぱりちょっとした話の流れに便乗した質問も許容出来ない高齢期障害の爺か
そんなにイライラしてると高血圧で脳溢血になるぞ
2022/02/03(木) 19:16:08.09ID:qZuoLMNW0
マクロだけだっけ、覚えてないわ
2022/02/03(木) 21:24:18.10ID:Mvkv/5Wv0
マクロウィルスはラルーだっけな?
それもあったけど、なんかのウィルスだった覚えがあります。
入力した値や文字列が文字化けするウィルス
2022/02/04(金) 17:29:19.29ID:/9L9fpIb0
10弱ほどの複数のシートの同じ行を、まとめて選択してDeleteしているのですが
シート1枚につき18秒ほど掛かるようになって、シート全体で3分以上Excelが固まった状態になります
行では無く範囲をUnionで選択しても速度は変わりませんでした
Clearcontentsすれば速いんですが、その後CSVにして読み込ませる必要があり
ただ消しただけだと、Deleteされた行までデータが存在する事になってしまっていて、支障があります
Clearcontentsした後、VBA側で空欄の行をDelete以外で詰める方法は無いでしょうか
2022/02/04(金) 17:34:09.06ID:/YpTyf1v0
↑コピペ
2022/02/04(金) 17:49:25.28ID:/9L9fpIb0
コピペって何が?
937デフォルトの名無しさん (ワッチョイ 668e-ltXr)
垢版 |
2022/02/04(金) 18:12:14.30ID:pHRCGz/X0
>>931
読み返しても問題に気付かない馬鹿か?
938デフォルトの名無しさん (ワッチョイ 2a7c-21ac)
垢版 |
2022/02/04(金) 20:33:02.02ID:mH27gNw80
諸先輩方に質問です。
VBAの勉強を始めたばかりで的外れなところはご容赦ください。
BeforeRightClickで記述するということはわかりました。

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

日々の作業で特定の範囲内でセルを黄色く塗る作業が多くあります。
これをペンキボタンを使わずにできると作業効率があがるかと思います。
皆様には簡単すぎるかと思いますがどうぞよろしくお願いします。
2022/02/04(金) 20:40:52.99ID:AMkz1drU0
直の回答で無くてすまんがショートカットキー使った方が便利な気がする
2022/02/04(金) 21:30:10.84ID:wpZeT9bxM
>934
実際のコードはどんな感じ?
シート選択して該当行を削除してるなら、当然遅い。
2022/02/04(金) 21:33:46.72ID:wpZeT9bxM
>>938
右クリックにマクロ割り当てるより、既に回答ついてるようにキーボードショートカットに割り当てるか、イベントのダブルクリックなんかに割り当てる方が良いと思います。
他にも色々したいならユーザーフォームを使うのもありかと。
2022/02/04(金) 21:36:40.60ID:Zgf6kB1T0
>>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
2022/02/04(金) 21:38:14.51ID:Zgf6kB1T0
一応書けたけど、バグったらごめんね~って感じはある
コンテキストメニューの非表示は、何か良くない事が起こる気がする
ショートカットに割り当てといたほうが良いと思うなぁ
944デフォルトの名無しさん (ワッチョイ 2a7c-21ac)
垢版 |
2022/02/04(金) 21:52:01.87ID:mH27gNw80
>>942
ありがとうございます、
試してみたところ、問題なく動きました。
素早いレス感謝します。

>>939
>>941
ありがとうございました。
ショートカットキーも併せて検討してみます
2022/02/04(金) 21:59:19.78ID:Zgf6kB1T0
>>942で一個だけ迷ったのが、
Cancel = True 'コンテキストメニューなし
の行
これ、今の場所に書くべきか、以下の間が良かったのか、どっちだろう
End If
Else

なんとなく後者の方が良いかと思ったけど、具体的な理由は特に無い
2022/02/04(金) 22:00:37.50ID:hsiPC1r9M
>>942
勉強になるわ
2022/02/04(金) 22:07:39.34ID:hsiPC1r9M
>>945
色塗りが先か非表示が先かってことでしょ?
どっちでも良い気がするけど
2022/02/04(金) 22:20:18.23ID:Zgf6kB1T0
>>947
そうそう、どっちでもいい
だけど、エラーの発生や可読性などを考慮した時、どっちがいいかなと思って
こういう時に迷わずに書けるようになりたい
2022/02/04(金) 22:27:16.08ID:MwWgLKiA0
>>938
向上心あって良いね、自分は動きゃええわって感じだからなぁ 笑
それもあってここ抜いちゃうかもって思った
Else
Cancel = False '範囲外ならコンテキストメニュー復帰
2022/02/05(土) 02:19:12.27ID:6OPkdc9C0
>>940
レスありがとうございます
シートを一枚ずつ削除してからDeleteを試していったら、特定のシートの有無で大きな変化があったので
重くなる理由で調べていったら、条件付き書式がセルのコピペで勝手にどんどん増殖していく というのがまさにそれでした
Deleteとかは関係なかったみたいです、失礼いたしました
2022/02/05(土) 03:34:09.74ID:Bcit2bMf0
勝手に増殖したらウイルスみたいだな、そもそもコピペで(条件付き)書式もコピーされるのは正常動作だし
2022/02/05(土) 14:27:20.74ID:NvgV3V+H0
365インサイダー板、久しぶりに更新きた
953デフォルトの名無しさん (ワッチョイ f753-AiWJ)
垢版 |
2022/02/06(日) 04:25:59.05ID:4j2iEgx50
EXCEL2021のエラーダイアログに「デバッグ」ボタンがないんだけど、
どうすれば表示されるようになります?
2022/02/06(日) 17:12:52.54ID:5H6ThRiB0
>>953
スクリーンショット見せてほしい
2022/02/07(月) 11:59:42.81ID:dtTrWMUA0
新しいバージョンは、バグがあるからねぇ…
使わないに限る
2022/02/07(月) 12:13:58.84ID:PizflsNCM
全面的に使用禁止
2022/02/07(月) 14:36:18.09ID:L5SqTIhE0
そういい続けて今でもExcel2003使っている
2022/02/07(月) 17:16:58.35ID:clNFinzC0
VBA内で今まで使えてたKillが急に使えなくなった。
Excel13に戻すと使えるけど、俺が頃されたのか。
2022/02/07(月) 17:38:36.22ID:N54aEDvt0
概念が殺された
2022/02/07(月) 17:41:13.85ID:2n7cflzo0
>>958
ファイルやフォルダのアクセス権は大丈夫なんか?
2022/02/07(月) 18:07:58.36ID:Zblf2oZud
>>958
エラーコードとかもどってきてないの?
2022/02/07(月) 18:21:22.94ID:clNFinzC0
実行時エラー70
書き込みできません

プログラム内で作った作業用のファイルを終了直前に削除する部分が効かなくなった。
もう帰っちゃったしアクセス権とかは調べてないや。でもファイルは作れるしな。
先月までは普通に動いてたし別なPCでも同じ結果なんだな。
2022/02/07(月) 18:30:16.04ID:1qSznfbA0
>>958
「実行時エラー70書き込みできません kill」
で検索したら色々出てきた
多分開きっぱなしになっているので、.closeかなんかで閉じると良いと思う
2022/02/07(月) 18:44:59.26ID:UL1lTxQ90
ウイルスチェックやフォルダの同期(GoogleDrive)が邪魔してくれる事は良くある
2022/02/07(月) 20:17:13.59ID:rYqCZzs10
田中氏、いきなりようつべに復活したぽい
2022/02/07(月) 21:53:43.66ID:2n7cflzo0
>>962
そのファイルを誰かが開いてる

場合によってはエクスプローラーが開きっぱなしにすることがある
テンポラリフォルダの表示形式を一覧か詳細に変えてから閉じてみ
2022/02/08(火) 07:57:31.61ID:Kw22iHFld
>>962
ファイルを削除直前まで開いてたりすると削除で使用中の扱いになったりすることがあるから
ファイルを閉じる>Sleepで2秒程度またせる>削除
のようにするといいかもしれない。
自分はいつもこうしてる
2022/02/08(火) 22:22:07.82ID:VQAPYvrL0
ダウンロードファイルのVBAマクロをデフォルト無効化。Officeに仕様変更
https://pc.watch.impress.co.jp/docs/news/1386777.html
2022/02/09(水) 07:37:52.77ID:Fae4IrPy0
ダウンロードファイルなら無効にしておいたほうがいいだろうけど、
すぐに有効にしそう
2022/02/09(水) 09:21:32.50ID:9BkbymyAM
>>969
使うためにダウンするから難しいところだよね
2022/02/09(水) 09:47:40.14ID:mKkfmqYvd
社内のサイトからだとめんどくさいけどやらかすやつがいる以上はアプリ側でこういう対策をしてくれるのはありがたい
ファイルごとの指定だろうから既定値無効でいいと思うね
2022/02/09(水) 09:50:35.22ID:RWuYGaqJ0
こっそり入ってくるのを防ぐのが目的なんだから、マクロの存在をユーザーが認識できてるかどうかでしょ
自分で設定を切れるレベルの人は問題ないとみなすので、自己責任でどうぞ切って下さいってスタンス
2022/02/09(水) 10:56:38.64ID:9BkbymyAM
>>972
ウイルス単独というか元々あるVBAのコードを改編されるからコードが読めないと判断出来ないと思うよ
2022/02/09(水) 11:20:58.48ID:bDyl2u0GM
完璧に対策するのは不可能だから、まずは「添付の資料を見て下さい」っていう犯人からのメールきっかけで侵入されるパターンを想定してるのでは
975デフォルトの名無しさん (ワッチョイ b75f-PSKB)
垢版 |
2022/02/09(水) 12:06:08.78ID:kbHLXdYh0
マクロを理解してる人は、メールとかで送られてくる
Excelファイルなんて開かないけど、無能な素人が
開いちゃって、社内にウイルスがばら撒かれるから
無能のヒューマンエラー防止のための策でしょ?
2022/02/09(水) 12:22:38.83ID:j8hQF/oi0
公開されているcsvを読込むマクロで
csvファイルからウイルス広まる事例って
あるのかしら?
2022/02/09(水) 13:40:36.30ID:LKLk4DLKa
リンクを手当り次第クリックしちゃうアホがいるからね
2022/02/09(水) 13:43:15.59ID:Fae4IrPy0
誤クリを防ぐって意味ならたしかにかなり有用だと思う

>>976
言ってる意味がよく分からんが、
マクロはものすごくウィルスを添付しやすい
サイトで公開されているマクロ付きのエクセルファイルなんて開いちゃダメだぞ
コードを読んで、コピーして問題なければ使うのが基本だ
2022/02/09(水) 14:04:41.56ID:j8hQF/oi0
>>978
ああ。
.xlsmファイルをメールで送るつもりはさらさらなくて。

けど、
e-statなんかで公開されているcsvファイルを
読込んで処理するマクロを組んだ.xlsmファイルも
デフォルトでは開く度に毎回警告されるものだから。
2022/02/09(水) 14:20:22.38ID:RWuYGaqJ0
CSVは単なるテキストファイルだから、それ自体には感染能力はないけど、わざと文字化けさせたり巨大なデータを混入させてといて、読み込むアプリを誤作動されられる可能性ならある
簡単に実験できる範囲だと、セル内改行が大量にあるだけでExcelがプチフリするしね
2022/02/09(水) 14:20:22.44ID:Z/7LO9MU0
CSVに関数を書き込んで読み込んだExcelがそれを実行するって事例があった
2022/02/09(水) 14:25:00.32ID:I0u44nFvd
Excel VBA 質問スレ Part75
https://mevius.5ch.net/test/read.cgi/tech/1644384272/
2022/02/09(水) 14:27:15.27ID:RWuYGaqJ0
>>981
さすがにワークシート関数だけじゃ感染は無理なのでは
使用者を混乱させて誤操作を誘発するとかやらないと
2022/02/09(水) 15:29:31.91ID:h7C3sgPu0
>>982
なんたる有能
985デフォルトの名無しさん (オッペケ Sr0b-PSKB)
垢版 |
2022/02/09(水) 15:41:42.37ID:F+qQsHczr
大昔、2chの草創期に大流行した

ブラクラみたいな感じ
2022/02/09(水) 18:27:17.30ID:2Z/3/DW40
古いExcelは拡張子.xls でもマクロ書けたのと、test.csv.xls みたいなファイル名でOS設定で拡張子を表示しないとか
されていると気づかないで実行されることがあった
987デフォルトの名無しさん (ワッチョイ ffba-2cIz)
垢版 |
2022/02/09(水) 19:24:18.78ID:KYojXGCr0
どうすれば先頭の画像をクリックできるのでしょうか?
Sub func()
Dim url As String: url = "https://e-hentai.org/g/1727798/1fbe77a0a2/";
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
2022/02/09(水) 19:45:46.68ID:Fae4IrPy0
>>987
ここから進まない
Do While objIE.Busy Or objIE.readyState <> READYSTATE_COMPLETE
DoEvents
Loop

最終的に何がしたいの?スクレイピング(画像のダウンロード)?
2022/02/09(水) 19:48:05.28ID:Fae4IrPy0
ダウンロードなら、右の「Archive Download」からダウンロードできるぽいのでそこで試してみては
2022/02/09(水) 21:24:05.75ID:Z/7LO9MU0
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) でリンク先に飛ぶ
2022/02/09(水) 21:40:08.30ID:RWuYGaqJ0
>>987
そもそもe-hentai.orgはスクレイピング対策がけっこうキツめだからそんな単純な方法ではだめだったはず
2022/02/09(水) 21:44:33.64ID:oSWjz80sa
.click
2022/02/09(水) 22:14:49.52ID:MpMYHHoEd
どんな画像かわからんけど漫画なら作者なりが訴えたらまとめて賠償請求されるかもしれんのに
よく回答するねw
2022/02/09(水) 22:20:10.16ID:dWa1kwqW0
だって、教えたがりおじさんおばさんの巣窟だもん
2022/02/09(水) 22:31:13.14ID:WQvIAEnaM
回答者に賠償請求ですって?法律を知らない子はおかしなことをおっしゃるのね
2022/02/09(水) 22:43:06.13ID:qWGRAcWA0
質問者はどうしたらクリックできるか訊いてるんだけどね
なぜかダウンロードだのどうしたいだの
997デフォルトの名無しさん (ワッチョイ ffda-tymv)
垢版 |
2022/02/10(木) 01:00:09.82ID:hZgX7eKD0
マウスつなげる
2022/02/10(木) 07:30:31.61ID:j0eZpZqg0
If cnt=1000 Then MsgBox "ぬるぽ", vbOkOnly+vbCritical
2022/02/10(木) 09:01:43.57ID:YAVEwoPsM
vbaでWordの2ページ目にある表の中の文字列をエクセル転記したいです。
Wordの操作はできそうなのですが文字をどこまで細かく引っ張れるのでしょうか
2022/02/10(木) 09:33:43.50ID:cXcP1CjO0
>>999
条件次第
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 52日 7時間 52分 44秒
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況