X



Excel VBA 質問スレ Part62
■ このスレッドは過去ログ倉庫に格納されています
0001
垢版 |
2019/06/24(月) 00:21:37.48
!extend:checked:vvvvv:1000:512

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

※前スレ
Excel VBA 質問スレ Part61
http://mevius.5ch.net/test/read.cgi/tech/1556203263/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
0616デフォルトの名無しさん (ワッチョイ 691c-VaZZ)
垢版 |
2019/08/12(月) 08:16:20.47ID:rWCvfjYy0
環境の仕様上、仕方なくexcel_vbaからedgeを操作するコードを書く必要があります。
ieのようにcom?ole?オートメーションより操作する方法が用意されていないことが分かりました。

結果的にwebdriver経由以外は操作不可という認識です。
>>589の方も書かれている通りなのですが、
楽をする意味でもseleniumbasic+webdriverの組み合わせが最善なのでしょうか?
0617デフォルトの名無しさん (スプッッ Sdfa-k+MG)
垢版 |
2019/08/12(月) 08:43:02.45ID:jMLB7Ls7d
>>616
Javascriptにしとけって
なんでわざわざ難しくするのか理解出来ない
0619デフォルトの名無しさん (ワッチョイ 7df1-6/mF)
垢版 |
2019/08/12(月) 09:35:57.54ID:DZttgA6c0
Jacascriptならタブブラウザのタブにページを追加することはできますか?
0622デフォルトの名無しさん (ワッチョイ 7df1-6/mF)
垢版 |
2019/08/12(月) 10:06:01.90ID:DZttgA6c0
>>620
ありがとう。ところでVBAからJavascriptはどうやって呼び出すのですか?
0623デフォルトの名無しさん (ワッチョイ ae68-+P8T)
垢版 |
2019/08/12(月) 10:15:28.94ID:pwPFXa0Y0
>>621
回答してあげれば?

>>622
あぁ、すまん
JavaScript疑似プロトコルを使うのが楽だと思う
https://www.vba-ie.net/ie/javascript.php

「IE(InternetExplorer)のJavascriptを実行するサンプルコード」
の部分

要はURLに
javascript:〜
とjsコードを書いてページ遷移させようとするとコードを実行できる。もちろんページ遷移はしない
0627デフォルトの名無しさん (ササクッテロレ Sp85-pTyf)
垢版 |
2019/08/15(木) 08:19:26.16ID:itT4sC0lp
>>626
漠然としすぎてたので少し補足します
すでに開かれたIEで、
特定の文字列の入ったリンククリック
特定の文字列の入ったボタンクリック
ラジオボタンクリック
検索窓に文字入力
ダウンロードボタンをクリックしDL画面から保存
この流れを実行したいですどうかお助けください
0633デフォルトの名無しさん (ワッチョイ 298e-2nrJ)
垢版 |
2019/08/16(金) 03:05:47.27ID:mEybPnb20
>>631
馬鹿丸出し
0637デフォルトの名無しさん (ワッチョイ 292c-fkm4)
垢版 |
2019/08/16(金) 11:14:05.14ID:T8TNcgJH0
2019/8/14配信のWindowsUpdateを適用すると、Windows 7/8.1/10(全バージョン)で、

・VBVisual Basic 6 (VB6)で作成したアプリケーション
・Visual Basic for Applications (VBA)で作成したマクロ
・Visual Basic Scripting Edition (VBScript)で作成したマクロやアプリケーション

が応答しなくなり、『invalid procedure call error.』と表示される場合があるという
不具合が発生している模様。

WindowsUpdate 2019年8月度 注意事項と各KBメモと直リンク [Update 4: VB関連死亡]
http://blog.livedoor.jp/nichepcgamer/archives/1074802426.html
2019年8月14日のWindowsUpdate後、VB関連が死亡。Windows10全バージョンにて
http://blog.livedoor.jp/nichepcgamer/archives/1075495666.html
0638デフォルトの名無しさん (ワッチョイ d9ca-4tya)
垢版 |
2019/08/16(金) 12:33:15.26ID:cw5RArPO0
>>637
> 2019年8月14日のWindowsUpdate後、VB関連が死亡。Windows10全バージョンにて
> http://blog.livedoor.jp/nichepcgamer/archives/1075495666.html

この記事で、Win10のバージョンと不具合の生じたKBの対応表があり、
https://i.imgur.com/gyz63Lm.jpg
先日(8/14)のアップデートが正に該当KBだったが、
https://i.imgur.com/4jCXivm.jpg
試しにExcelのVBAを実行したところ、何の問題もなく実行できた

記事をよく見ると、
 「invalid procedure call error.』と表示される場合があるという不具合が発生しています」

『表示される場合がある』だから、マクロを作りまくってるところは確認が大変だろうねぇ
0650デフォルトの名無しさん (ワッチョイ 292c-fkm4)
垢版 |
2019/08/17(土) 11:27:09.01ID:A2kuY6Eb0
VB6、VBA、VBScriptの不具合の件、MSが対応策を取ったことで>>637の2ページも更新された。
Windows7はKB4517297、Windows8.1はKB4517298を手動ダウンロード後、適用で修正。
Windows10は、v1903/v1809/v1803が8月下旬、v1703/v1607/v1507は数日中の修正予定。
v1709のみ8月17日公開のKB4512494で修正された。
0652デフォルトの名無しさん (ワッチョイ 517c-yBk9)
垢版 |
2019/08/17(土) 15:54:42.36ID:iIHdaZG00
VBAでもPythonでもないなら何を推奨してるんですか?ExcelマクロはVBAでやるしかないんだけど。Excelを使うなってことかな。
0653デフォルトの名無しさん (ワッチョイ 2946-g2bq)
垢版 |
2019/08/17(土) 15:55:45.89ID:HLb3E5lg0
質問です。以下のようにArraylistにPersonを5つ、それぞれ1から5の番号をつけて追加して、そのあとセルに表示というコードなのですが、
Dim per As Person
Set per = New Person
を、Dim per As New Person に一行でまとめるとセルの出力が全部5になってしまうのですが、
これはどういった理屈なのでしょうか?
一行でまとめて書いていたのでこの仕様に気づくまでかなり苦戦してしまいました、、


'--------------------標準モジュール------------------------
Sub test()
Dim col As Object
Set col = CreateObject("System.Collections.ArrayList")
Dim i As Long
For i = 1 To 5
Dim per As Person
Set per = New Person
per.num = i
col.Add per
Next
For i = 1 To 5
Cells(i, 1) = col.Item(i - 1).num
Next
End Sub
'--------------------------ここまで--------------------------

'----------------------クラスモジュール(Personクラス)-----------
Public num As Long
'----------------------------ここまで--------------------------
0656デフォルトの名無しさん (ワッチョイ 2946-x+FD)
垢版 |
2019/08/17(土) 16:52:36.35ID:HLb3E5lg0
>>654-655
なるほど、一行だとpersonが一つしかインスタンス化されてないからコレクションの中身が全部
同一のpersonを指していたのですね、、
またDimの仕様も初めて知りました
VBA特有なのでしょうかね
ありがとうございました!
0657デフォルトの名無しさん (ワッチョイ 5994-OqLs)
垢版 |
2019/08/17(土) 19:14:32.76ID:RXxx1rXC0
VBAなんて死亡で何も問題にない
やっと消えてくれて良かったよ
MSグッジョブ!
0658デフォルトの名無しさん (ワッチョイ 4901-yBk9)
垢版 |
2019/08/17(土) 20:27:14.12ID:TTG1tsty0
>>657
VBA使わなかったらExcelは何を使って動かすの?
0659デフォルトの名無しさん (ワッチョイ 1342-DuLZ)
垢版 |
2019/08/17(土) 20:50:19.45ID:N2s/0hZJ0
夢と情熱で動かせばいい
0662デフォルトの名無しさん (ワッチョイ 517c-yBk9)
垢版 |
2019/08/17(土) 21:32:02.44ID:iIHdaZG00
事務職がある限りExcelはあるし、事務員はPython出来ないからExcelマクロしかない。VBだから安くて済むのに事務員もPythonやるようになれば給料が高騰するな
0663デフォルトの名無しさん (ワッチョイ 13da-g2bq)
垢版 |
2019/08/17(土) 21:42:22.66ID:Fw+V3P9r0
>>646
待つのはこんな感じ。

Do
 戻り値 = FindWindow(ダイアログのクラス名, ダイアログのキャプション)
 Sleep 1000
Loop While 戻り値 = 0

>>636みたいな嫌がらせをうけたら誤爆するけど、まあ普通はないでしょう。
0665デフォルトの名無しさん (スップ Sd73-OqLs)
垢版 |
2019/08/18(日) 11:09:28.84ID:4FW1F7ZHd
エクセルに古臭いVBAしかない理由って知ってる?
アップデートもなけりゃ最新言語に対応もしない本当の理由知ってるか?
0667デフォルトの名無しさん (スップ Sd73-OqLs)
垢版 |
2019/08/18(日) 11:40:45.27ID:4FW1F7ZHd
マジィ?
0669デフォルトの名無しさん (スップ Sd73-OqLs)
垢版 |
2019/08/18(日) 12:20:01.35ID:VmB6zVS1d
鮫島よりペルシチェネンコ事件だろ
0670デフォルトの名無しさん (ササクッテロラ Sp85-yBk9)
垢版 |
2019/08/18(日) 12:21:49.45ID:bLuo7bGBp
>>665
Excel自体にそこまで需要がないから。最新言語を対応させても得られる利益は変わらない
0673デフォルトの名無しさん (スップ Sd73-OqLs)
垢版 |
2019/08/18(日) 13:22:03.41ID:fr36iN96d
VBAに需要がないのは間違いない
誰にも必要とされてない
お前らの独りよがり
じゃなきゃコミュニティも盛り上がるはずだけど全く超低空飛行
0674デフォルトの名無しさん (ササクッテロラ Sp85-yBk9)
垢版 |
2019/08/18(日) 13:31:43.08ID:bLuo7bGBp
Excelマクロなんて事務員くらいしか使わない。マクロを使わなくてもいいようなシステムを開発したらいいだけ。企業はマクロよりRPAを使うようになってきてる。
0675デフォルトの名無しさん (ワッチョイ 1301-vqjO)
垢版 |
2019/08/18(日) 14:20:33.70ID:/SWswUk70
末端の人がパーフェクトに便利さを感じられるシステムを
会社が構築してくれたらいいんだけど
実際はそういうわけには行かないわけで
隙間をうめるためのお手軽自動化ツールとしてVBA使う事になる
うちではそうだわ
VBAがなかったらクソくだらない作業を手作業でちまちまやらないといけなくなる
0676デフォルトの名無しさん (ワッチョイ 1394-OqLs)
垢版 |
2019/08/18(日) 14:49:48.58ID:IrH+YuBi0
VBAなんて使わない方法を考えたら?
もう世間は誰もVBAなんて見向きもしてないから現状はこうなんだよ
いつまでも昔のやり方を変えないのもどうかと思いますよ
時代に合わせよう
0682デフォルトの名無しさん (スップ Sd33-OqLs)
垢版 |
2019/08/18(日) 17:09:34.94ID:VGD+ydi8d
クソ言語にしがみ付くなって
VBAなんて将来性もゼロの全く価値のない子供向けのお遊びコード
0688デフォルトの名無しさん (ワッチョイ 291a-b/Zd)
垢版 |
2019/08/19(月) 18:24:33.37ID:YB9Wg1qd0
ExcelもPythonで動かせるようになるんでしょ?
0691デフォルトの名無しさん (スップ Sd33-OqLs)
垢版 |
2019/08/19(月) 19:11:40.32ID:I77Hqr4od
無理
そんな事が出来るなら今どきVBAなんて使ってない
0695デフォルトの名無しさん (ワッチョイ 1301-wrC8)
垢版 |
2019/08/19(月) 19:56:47.47ID:kG35/yIv0
>>689
これのどこを読んだら「マイクロソフトが Excel に搭載するのは JavaScript であって」なんて出てくるんだろう?

Cool to see the excitement around Python.
We had an awesome response to our survey on the Python UserVoice item. We’re working on the best way to address that feedback.

・In the meantime, these are some great tools you can use like PyXLL and XLWings
・Additionally, you can also host your backend logic via a web service in any language, including Python, and you can use web add-ins or a custom function to call that web service.
0698デフォルトの名無しさん (ワッチョイ 1394-OqLs)
垢版 |
2019/08/19(月) 21:10:37.00ID:hlBLM62K0
今出来てない奴の典型的な言い訳だな
0700デフォルトの名無しさん (ワッチョイ 517c-yBk9)
垢版 |
2019/08/19(月) 22:38:19.44ID:yJROWsyT0
VBAが出来ればPython簡単でしょ。プログラミング何も知らなくても一か月あれば覚えれるし!
0703デフォルトの名無しさん (ワッチョイ 4901-Bu6k)
垢版 |
2019/08/19(月) 23:06:13.11ID:/B6DUDSo0
初心者質問ですいません。
下のコードで、Range("V3:V8")だと何事もなく範囲を指定できるのですが、
Range(Cells(…),Cells(…))だとエラーが出てしまいます。
何が悪いのでしょうか?

Worksheets("シート1").Activate

ActiveSheet.ChartObjects("グラフ1").Activate

ActiveChart.PlotArea.Select

ActiveChart.SeriesCollection.NewSeries

ActiveChart.FullSeriesCollection(1).XValues = Worksheets("シート2").Range("V3:V8")

ActiveChart.FullSeriesCollection(1).Values = Worksheets("シート2").Range(Cells(3, 3), Cells(8, 3))
0708デフォルトの名無しさん (ラクッペ MMa5-Bu6k)
垢版 |
2019/08/20(火) 10:43:23.94ID:Lb9pYe6wM
すいません、もうひとつ助けて頂けると嬉しいです。

ActiveChart.FullSeriesCollection(1).Name = Worksheets("シート2").Cells(3, 3)

で、参照先のセルにはユーザー定義にて"8月19日"のように◯月◯日形式で表示させていますが、
グラフ凡例には2018/8/19のように表示されてしまいます。

凡例にも参照先のセルと同じように◯月◯日形式で表示させる事は可能なのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています

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