Excel VBA 質問スレ Part74

レス数が900を超えています。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/01/30(日) 07:43:58.44ID:q4Ohgw6D0
>>759
うちの環境だと、FilterオブジェクトにSortはないね
その代わり、ListObject.AutoFilter.Sort.SortFields.Countで検出できそうなのは見つけた
もしかしてこのへんバージョン毎に違ったりするのだろうか?
2022/01/30(日) 09:05:00.91ID:4Di3AbRzM
>>819
すまん今見たらそっちが正しいわ
なんか勘違いしてた
2022/01/30(日) 09:32:32.30ID:XZOTMr4+0
>>807
確かにw
取材側の都合の良いように組まれているね。
言われてみればグラフの装飾だけでExcelを操作していないわ。
822デフォルトの名無しさん (ワッチョイ 3a00-VTwM)
垢版 |
2022/01/30(日) 09:32:37.50ID:RkuzR5nc0
>>818
私の伝え方が悪かったです。
Excel自体は終了せずに、現在使用しているブックとは別のブックとしてcsvを出力して、そちらを閉じたいのです。
2022/01/30(日) 09:54:20.39ID:XZOTMr4+0
そもそも学生大会があるってのは知らなかった
騒がしてごめんなさい😢⤵⤵
2022/01/30(日) 11:04:58.48ID:q4Ohgw6D0
>>820
いやいや、むしろ知らない方法を見つけられたのでありがたかったです
2022/01/30(日) 12:45:39.26ID:mFQLQi3M0
VBAももう終わりそうだな
MSはWEB版にしたいみたいだし
2022/01/30(日) 12:58:15.03ID:+kmkPMy10
不滅です
2022/01/30(日) 13:00:10.17ID:gD+f1kBW0
終わる要素一切なくて草
2022/01/30(日) 13:13:55.29ID:wiJ8ix3a0
MSがGoogleに頭下げてGASで統一しましょうみたいな交渉を持ち掛けない限りはないだろ
2022/01/30(日) 13:18:12.09ID:XZOTMr4+0
確か4.0マクロ廃止とパワークエリはマクロ作業を減らすためにMSが作ったんじゃないのかい?
2022/01/30(日) 18:00:19.55ID:k8uzKlEP0
>>825
気が早いな
まだ学校や企業のライセンスでしか
Web版Excelのjavascriptでの開発は出来ないと言うのに
2022/01/30(日) 18:51:59.67ID:gD+f1kBW0
パワーピボットは本当にスゴイ
なんでもっと早く実装しなかったんだ・・・
2022/01/30(日) 19:06:51.96ID:DR73eQYX0
ようつべにこんなのあった。

Excelオンラインで最新Excel関数を練習したいという方も必見です!どこまでできるか試してみた!
https://youtu.be/saC7BegnViI

Power Queryは使えないけど
テーブル、スライサー、ピボットテーブルは使える模様。

ただ、スマホの小さな狭い画面だとムリだろな・・・
833デフォルトの名無しさん (オッペケ Srbd-4IfY)
垢版 |
2022/01/30(日) 19:55:45.81ID:gNdtnnB7r
なんで、Access使わないの?
SQL 使えないと不便じゃん。
2022/01/30(日) 19:57:56.80ID:PMeev6woM
powerqueryで十分だから
excelだけで完結する
2022/01/30(日) 20:17:09.09ID:XZOTMr4+0
Excelオンラインって一部の上級者が食いつき始めていると聞きましたわ
2022/01/30(日) 21:04:21.08ID:k8uzKlEP0
>>833
何故にEXCELでSQLが使えないと思ったのかは聞かないけど
まだSQL初心者でクエリ画面開いてチマチマとテーブル繋いで設定していく
あのACCESSのが使えないかと言われればそれはそう。

でも複雑なSQLを組むようになると結局手で書いた方が早くなるからアレもあまり必要性を感じないけどね。

結局、ADOさえ理解していればACCESSだろうがORACLEだろうがSQLSERVERだろうがその気になれば
EXCELのシートだろうがCSVファイルだろうがEXCEL上からSQLを実施することが出来る。

ただ、本来DBの用途からかけ離れるほど使用に制限を受けるよ。
例えばEXCELのシートやCSVファイルはDELETE文が使えなかったりとか。
2022/01/30(日) 21:18:16.55ID:k8uzKlEP0
>>835
さっきもちょっと書いたけど
まだ商用か教育機関用のライセンスじゃないと
Javascriptで開発すること出来ないんだよね。

だからJavascriptやってない人は
まだ猶予期間がある内に
Javascript触って慣れておくといいよ。
特にスカラー変数とかまるで
全ての変数はVariant型で扱うかの
ようになったり、
Jqueryとかが出てくると
メソッドを変数に入れたり
チェーンメソッドみたいなのも出て来たり

その前にHTMLやCSSも勉強しなきゃだけど。
2022/01/30(日) 21:24:55.59ID:gD+f1kBW0
ちゃんとしたデータが揃ってるって前提なら、DELETEなんて使う事はそんなになくないか?

>>837
エクセルでjQuery使えるの?
2022/01/30(日) 21:36:30.54ID:k8uzKlEP0
>>838
DELETE使う必要があるかと聞かれれば、
まぁ有った方が便利かも知れないね、という程度。
何せEXCELのシートで条件に合った行が一発で消せるのであればまぁ便利だろう。ただ、
VBAでそういうロジック組めば代用出来ない訳じゃない。

Jqueryが使えるかどうかは俺もまだ
Web版EXCELの開発環境触ったことないから分からんけど、
どっちにしてもJavascriptをやるならついでに覚えて置いた方がいい。とっても便利。
840デフォルトの名無しさん (ワッチョイ 668e-ltXr)
垢版 |
2022/01/30(日) 22:15:29.30ID:sjTHXMe20
ID:k8uzKlEP0

またいつもの馬鹿が嘘ばっか書いてる
2022/01/30(日) 23:07:47.49ID:k8uzKlEP0
例えばだけど
VBAを生業としているとその内DBとのやり取りを行うようになってSQLは必須になることは理解している人はここにも沢山いると思う。

同様にWeb系を行うならHTMLやCSS、Javascriptの知識が必須になるんだよ。
もしEXCELがWeb主体で扱われるようになるのであればその知識が必要ってだけ。

まぁ確かにスレ違いではあるから
ぼちぼちおいとまするよ。
2022/01/30(日) 23:34:30.41ID:fPY/YlGjd
Excelでやるには面倒なことでほかの言語知っててそっちの方が簡単ならわざわざExcelなんて使わないでしょう
開発者ならそれぐらいわかりそうなもんだと思うけどわざわざ関係ないことを持ち出してくる必要ないのにね
843デフォルトの名無しさん (ワッチョイ 668e-ltXr)
垢版 |
2022/01/30(日) 23:58:36.03ID:sjTHXMe20
>>841
嘘ばっかと指摘されてもしつこく書く馬鹿
844デフォルトの名無しさん (ワントンキン MM7a-DCUM)
垢版 |
2022/01/31(月) 02:05:16.34ID:YxHLvxrCM
ruby馬鹿だろ
2022/01/31(月) 04:36:16.27ID:ByM6Elur0
>>822
Sub save_sheet_as_csv()
  save_folder = "c:\tmp\" '保存先フォルダ指定
  file_name = ActiveSheet.Name & ".csv" 'シート名をファイル名に
  ActiveSheet.Copy '現在のシートを新規ブックへコピー
  Application.DisplayAlerts = False '警告を無視して上書き保存できるようにする
  ActiveWorkbook.SaveAs Filename:=save_folder & file_name, FileFormat:=xlCSV 'CSVで保存
  Workbooks(file_name).Close '新規ブックを閉じる
End Sub
2022/01/31(月) 08:22:57.51ID:q62M0ujX0
何が嘘で本当はどうなのかを書けば一発なのに
2022/01/31(月) 09:22:06.68ID:KIxAb0730
いやさすがにウソは書き込みしないでいただきたい。
このスレは真面目に勉強したい人もいますので。。
ウソを本当のように書かれると信じちゃうじゃん。
2022/01/31(月) 09:28:32.59ID:xKkvHIL7d
JSとか関係ない話を持ち出してる人のレスが問題なだけでVBAの回答だけなら嘘はないんじゃないの
それと書かれてる内容で勉強したいなら実際に動かしてみるべきだと思うよ
2022/01/31(月) 09:38:43.11ID:9sC6tTKap
JSはWebのエクセルの話から派生したみたいだからあながち完全にスレチという訳でもなさそうだな
一応俺も少しJS齧ってはいるけど嘘を書いているようには見えないなぁ
どの辺が嘘なんだろ?
2022/01/31(月) 10:13:50.76ID:zlqGzvHc0
>>849
嘘ではなかった、アドイン入れたらJS使えたわ
ただ、ぱっと触った所vbaでいいとしか思わんかった。慣れてる方が楽でいい
jQueryも使えると思うけど、使う理由はないと思う。あれセレクタ便利になるけど、エクセルjsでは使わないような

ただwebエクセルでの使い方がわからんかったけど、多分一生使わないからもういいや
2022/01/31(月) 10:25:32.89ID:xKkvHIL7d
自分は嘘と言ってるつもりはないけど話が散らかりすぎてしかもどうでもいいことをダラダラ書きすぎと思ってるけどね
知ってることをいろいろ言いたいのかもしれないけどスレチだってことをわきまえてほしい
2022/01/31(月) 10:46:32.75ID:e1XVzmlT0
Web版Excelのマクロ機能(JSスクリプト)は家庭向け製品では使えない
いまのところ法人向け製品だけの機能
2022/01/31(月) 10:58:28.57ID:zlqGzvHc0
>>852
ああそういうことね、ありがとう
2022/01/31(月) 11:28:12.04ID:KIxAb0730
まあ、ウソホントの話は置いといてマッタリ平和にやりましょうよ
2022/01/31(月) 12:34:07.47ID:/myUa4Xt0
争いが嘘か、平和が嘘か
2022/01/31(月) 12:47:21.32ID:PJdTm1ZT0
JavaScriptと書いてくれ、途中まで理解が噛み合わなかったわ笑
2022/01/31(月) 12:58:13.56ID:9LYQT6bkM
JScriptでExcel.Applicationを扱うのは難しい!
2022/01/31(月) 12:58:47.12ID:e1XVzmlT0
細かいこと言えば実際はJavaScriptというよりTypeScriptだけど
https://docs.microsoft.com/ja-jp/office/dev/scripts/develop/scripting-fundamentals
2022/01/31(月) 13:07:08.11ID:xK8RZLXxa
>>855
銀河万丈の声で脳内再生されて草
860デフォルトの名無しさん (ラクッペペ MM3e-VTwM)
垢版 |
2022/02/01(火) 04:12:47.67ID:BAkheZAsM
>>845
ありがとうございます。
861デフォルトの名無しさん (ワッチョイ 6d36-T4N9)
垢版 |
2022/02/01(火) 18:51:32.45ID:BTrEast20
VBA 何もかもみな懐かしい。。
2022/02/01(火) 20:43:06.80ID:m1Otvt2w0
GoogleのI'm Feeling Luckyボタンを押すために

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

って書いてちゃんとclassnameの名前を入れているのに実行してみたら
438 オブジェクトは、このプロパティまたはメソッドをサポートしていません。
って表示されて実行されません
idだったらちゃんと動作するのですがclassnameだと実行されません
目的はclassnameでのボタンの押し方を知る事なのでどうしてらいいのか教えてください
2022/02/01(火) 21:42:08.98ID:JauLxykcr
独立したIf式が100個あるとして、どのIf式が処理をしたか最後にmsgboxで表示したいのですが、そういうことってできますか
864デフォルトの名無しさん (ワンミングク MM7a-DCUM)
垢版 |
2022/02/01(火) 21:53:36.89ID:NaaBd1FpM
できる
はい、次
2022/02/01(火) 21:53:41.40ID:UmaqdsBP0
各ifの処理の中でmsgboxに表示する番号なり何なりを変数に代入すればいいんじゃね
2022/02/01(火) 23:48:27.08ID:JauLxykcr
>>865
If A1<>"" 〜
End if

現状上の式がただただ書かれているんだけなんですがどうしたらいいですか
2022/02/01(火) 23:53:02.19ID:mToNlmlwd
マクロでマクロを書く

はい次
2022/02/02(水) 00:04:57.15ID:XK9gt2og0
それはif文を理解していないという解釈でいいのか
869デフォルトの名無しさん (ワッチョイ 668e-ltXr)
垢版 |
2022/02/02(水) 00:11:32.60ID:WPZgN1IY0
>>866
>>2を読め
2022/02/02(水) 00:23:00.41ID:DCaD8SVN0
>>862
Document.getElementsByClassName()
https://developer.mozilla.org/ja/docs/Web/API/Document/getElementsByClassName

JavaScript なら、上のリンク先を見れば良いけど、
VBA では、書き方が異なるのかも
2022/02/02(水) 07:28:52.11ID:4nB6ciIN0
>>870
ここからボタンを押すにはなんと書けばいいのでしょうか、、、?
2022/02/02(水) 07:31:23.63ID:f98ebtked
この手の質問は悪用される可能性があるから回答するの躊躇するよね
2022/02/02(水) 07:47:54.37ID:DCaD8SVN0
Ruby で、Selenium WebDriver なら、
driver.要素.click だけど、VBA は知らない

検索してみれば?
2022/02/02(水) 07:49:20.30ID:Sif5VXmLd
>>871
学習目的なら他のサイトにしたら
875デフォルトの名無しさん (オッペケ Srbd-4IfY)
垢版 |
2022/02/02(水) 10:07:41.90ID:wojfg/N6r
こんなところにアホな質問するヤツらは

ググる能力さえ無いということなのか?
2022/02/02(水) 11:13:58.55ID:QFn3Myrbd
ググったりして、その上で質問してると信じたい
スクレイピングとかブラウザの自動処理の質問だけど後者は悪用されるリスクが高いから答えたくないよね
2022/02/02(水) 11:17:43.23ID:wojfg/N6r
違うよ
処理完了MsgBox を表示させるなんて
素人でもググって1分で作れるだろ
2022/02/02(水) 11:38:37.34ID:Ro/5oidY0
>>875
最初は聞きまくった方が上達する
vbaはコードはアホみたいに簡単だけど、変なとこで敷居高いからな
2022/02/02(水) 11:54:30.15ID:34qMGLm0a
>>878
なら答えてやれよw
2022/02/02(水) 12:16:51.15ID:QFn3Myrbd
どんな言語もそうだけど敷居なんて高いと思ったことないよ
そもそもできないこともわからずにあれこれやろうとしてる人がそう思うだけでは
2022/02/02(水) 12:26:36.37ID:h1+1MA/aM
Excelを操作するための言語で
なぜブラウザを操作しているのか?
もっと良い方法があったのではないか?
手を動かす前にほんの少しは考えたほうが良かったのではないか?
2022/02/02(水) 12:27:02.36ID:43zIf/SN0
答えたい人は答えて答えたくない人はスルーしておけば良いと思う
答えないのに偉そうにしてる人は解らないのに偉そうにしている人と同じだし
2022/02/02(水) 12:38:30.87ID:PFGno9cc0
>>877
>>863の質問から、
「処理完了MsgBox を表示させる」ことが質問の本質だと思うわけね
2022/02/02(水) 12:58:44.52ID:h1+1MA/aM
お題は100個のif文を書き換えずにどれが処理されたかを当てるクイズね
885デフォルトの名無しさん (ワッチョイ a95f-4IfY)
垢版 |
2022/02/02(水) 13:00:17.51ID:mSZ4QSD40
各、End If の前に、IF 番号を変数として代入する
一行を記述する。
2022/02/02(水) 13:31:44.29ID:QFn3Myrbd
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
リスクあるから答えないってのも立派な回答だと思うけどね
それを偉そうと思うのならそう思ってもらって結構だけど
2022/02/02(水) 13:31:48.33ID:Ro/5oidY0
>>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
たまってたのね
2022/02/02(水) 13:41:28.48ID:h1+1MA/aM
それじゃあ >>868 の言うように
私の子がバカみたいじゃないですか!
889デフォルトの名無しさん (ワッチョイ a95f-4IfY)
垢版 |
2022/02/02(水) 13:42:27.00ID:mSZ4QSD40
IF 式自体を、MsgBox に表示したいのなら
100個の式の一覧をつくって、

Const にして100個記述すればよいかと。
そっちのほうが早い。
890デフォルトの名無しさん (ワッチョイ a95f-4IfY)
垢版 |
2022/02/02(水) 14:24:28.77ID:mSZ4QSD40
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

こんな感じかな。
スマホだと書きづらいわ…
2022/02/02(水) 14:25:53.07ID:Ro/5oidY0
VBAってevalなかったっけ
あれをフラグに入れれば完結になるんだけどな
892デフォルトの名無しさん (ワッチョイ a95f-4IfY)
垢版 |
2022/02/02(水) 14:31:06.05ID:mSZ4QSD40
IF文を全部、シートにコピペ→ソートしてやれば
Const を100個書くのは、3分でできるかな。
2022/02/02(水) 14:32:20.83ID:h1+1MA/aM
もっとメンタリストみたいにスマートに当てる方法はないのですか?
あなた達のスキルにはがっかりデス
894デフォルトの名無しさん (ワッチョイ a95f-4IfY)
垢版 |
2022/02/02(水) 14:36:33.27ID:mSZ4QSD40
プロシージャの中身も全部、シートにコピペして
変数の一行を100個挿入してやれば
10分かからないね。
895デフォルトの名無しさん (オッペケ Srbd-4IfY)
垢版 |
2022/02/02(水) 14:38:34.78ID:wojfg/N6r
くれくれ乞食がうぜえな

お前が書けよ
896デフォルトの名無しさん (オッペケ Srbd-4IfY)
垢版 |
2022/02/02(水) 14:59:23.76ID:wojfg/N6r
そもそも、IF文100コってなんだよw
無能が書いたのか?
2022/02/02(水) 19:16:31.19ID:4nB6ciIN0
vbaでieの操作に成功しました
そして目的の通知バーを出してキー操作をさせるためにsendkeyを入力しているのですがExcelの方がキー操作されてしまいます
これは待ち時間がないからですか?
2022/02/02(水) 19:27:47.16ID:SglXGK6G0
そう思うならタイマとか入れてどうなったか書けよ
2022/02/02(水) 19:32:10.25ID:4mbUlsYd0
みんなは過去に作った関数ライブラリって、標準モジュールで
管理(インポートorエクスポート)しているかんじ?
クラスモジュールで管理したらだめ?
2022/02/02(水) 19:42:36.70ID:7tA3nICW0
>>897
もしライブラリの追加が可能な環境ならSeleniumbasic使った方が簡単で確実に動作するぞ
2022/02/02(水) 20:08:51.32ID:gm4r/aDEa
>>897
そりゃ、IEに送らないとだめだわなw
2022/02/02(水) 20:31:24.68ID:lYAq0wM7r
>>887
ありがとうございます。
まさに理想通りのやつです。助かりました
2022/02/02(水) 21:08:49.40ID:4bGMKLpw0
>>899
やり方は色々あると思うけどその方法なら
用途によって標準モジュールでもクラスモジュールでも使い分けで管理すればいいと思う。

別の方法としてはツールとしてスケルトンのブックを作っておいて
その中に色んなモジュールを入れておいてコピーして必要なもの以外は削除して使う方法、
アドインブックを作っておいて参照を切って使う方法とかもある。
2022/02/02(水) 21:12:04.30ID:sT0aKZOxd
めんどくさいから win+vでピン留めしてるわ
2022/02/02(水) 21:53:01.49ID:Ro/5oidY0
>>899
googleスプレッドシートに書いておいて、そこからコピペ
vbaの場合、関数というよりも、
高速化や最終行の取得など、関数よりも細かい部分で欲しいものが多い
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

メモ代わりに使ってるワイ、無事死亡
レス数が900を超えています。1000を超えると表示できなくなるよ。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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