VBAを使った質問ならなんでもござれ
本来の対象であるオフィスアプリを操作する以外の話もOK
ゲーム作り、Webアクセス、外部アプリの操作
COM(ActiveX)、Win32API、.NET Framework、DirectXなどなど
VBAで実行するものであればなんでも質問してください
VBAを開発環境としていろいろ作っちゃいましょう
前スレ
VBAなんでも質問スレ
http://peace.2ch.net/test/read.cgi/tech/1342087380/
関連スレ
Excel VBA 質問スレ Part36 [転載禁止]©2ch.net
http://peace.2ch.net/test/read.cgi/tech/1419718732/
Access VBA 質問スレ Part1
http://peace.2ch.net/test/read.cgi/tech/1328536426/
VBプログラマ質問スレ(Ver.6.0 まで) part64
http://peace.2ch.net/test/read.cgi/tech/1393069842/
Excel総合相談所 118 [転載禁止]©2ch.net
http://peace.2ch.net/test/read.cgi/bsoft/1430352555/
VBAなんでも質問スレ Part2 [転載禁止]©2ch.net
レス数が950を超えています。1000を超えると書き込みができなくなります。
1デフォルトの名無しさん
2015/05/21(木) 10:52:44.71ID:KLv0vQmm858デフォルトの名無しさん
2019/05/23(木) 23:29:43.67ID:ufKYoT27859859
2019/05/28(火) 16:00:47.95ID:JWvhlEsx Findを利用したコードについて教えて下さい。
書籍、サイトで掲載されていたコードを利用し、少し変えたものです。
Findメソッドを使ってC列の”たろう”を検索します。
探し出したら、A〜C列の文字列をE列に結果を返すように作り替えてみましたが、結果がE1〜G1に上書きされてしまいます。
Cells(Rows,count を理解しきれていない、11行目のCells(i,”E”)の部分も理解していないと感じます。
どのように違うのか、ご指導お願いします。
ワークシートはこんなかんじ E列からG列は実行後の結果をイメージしたものです
A B C D E F G
1 日付 売上 担当者 000 AAA たろう
2 000 AAA たろう 333 DDD たろう
3 111 BBB はなこ
4 222 CCC たかし
5 333 DDD たろう
6 444 EEE はなこ
7 555 FFF くみこ
書籍、サイトで掲載されていたコードを利用し、少し変えたものです。
Findメソッドを使ってC列の”たろう”を検索します。
探し出したら、A〜C列の文字列をE列に結果を返すように作り替えてみましたが、結果がE1〜G1に上書きされてしまいます。
Cells(Rows,count を理解しきれていない、11行目のCells(i,”E”)の部分も理解していないと感じます。
どのように違うのか、ご指導お願いします。
ワークシートはこんなかんじ E列からG列は実行後の結果をイメージしたものです
A B C D E F G
1 日付 売上 担当者 000 AAA たろう
2 000 AAA たろう 333 DDD たろう
3 111 BBB はなこ
4 222 CCC たかし
5 333 DDD たろう
6 444 EEE はなこ
7 555 FFF くみこ
860859
2019/05/28(火) 16:01:28.69ID:JWvhlEsx 859の続き
Sub Find()
Dim temp As Range, tempAddress As String, i As Long
With Range("A1").CurrentRegion.Resize(, 1).Offset(, 2)
Set temp = .Find(what:=“たろう”)
If Not temp Is Nothing Then
tempAddress = temp.Address
i = Cells(Rows.Count, "E").End(xlUp).Row
Do
temp.Offset(columnoffset:=-2).Resize(, 3).copy Cells(i, "E")
Set temp = .FindNext(temp)
Loop While temp.Address <> tempAddress
End If
End With
End Sub
Sub copy()
Range("A:G").Clear
Worksheets("template").Range("A1:C7").copy Destination:=Worksheets("Sheet1").Range("A1")
End Sub
Sub Find()
Dim temp As Range, tempAddress As String, i As Long
With Range("A1").CurrentRegion.Resize(, 1).Offset(, 2)
Set temp = .Find(what:=“たろう”)
If Not temp Is Nothing Then
tempAddress = temp.Address
i = Cells(Rows.Count, "E").End(xlUp).Row
Do
temp.Offset(columnoffset:=-2).Resize(, 3).copy Cells(i, "E")
Set temp = .FindNext(temp)
Loop While temp.Address <> tempAddress
End If
End With
End Sub
Sub copy()
Range("A:G").Clear
Worksheets("template").Range("A1:C7").copy Destination:=Worksheets("Sheet1").Range("A1")
End Sub
861デフォルトの名無しさん
2019/05/28(火) 16:38:34.40ID:Z4r31Ymp >>860
i=i+1 が抜けてるだけじゃね?
i=i+1 が抜けてるだけじゃね?
862デフォルトの名無しさん
2019/05/28(火) 16:40:41.12ID:Z4r31Ymp >>861
それと、行や列用の変数として r c 使ってもええんやで
それと、行や列用の変数として r c 使ってもええんやで
864デフォルトの名無しさん
2019/05/28(火) 18:33:24.92ID:1J9FOJWe 初心者です。
Wordのユーザーフォームを作りたいのですがExcelの書籍しかなくて詰みました。
Excelのセル番地『A1』に相当するのが『ActiveDocument .tables (1) .cell (1.1)』というところまで突き止めて、
とりあえずテキストボックスに打ち込んだ文字列をセルに転記するところまではできたのですが、それ以上のことができません。
例えば繰り返し同じフォームを使う前提で、古いデータを削除したい時、Excelならば
『Range("A1") .CleanContents』で済むっぽい(うろ覚え)ですが
これをActiveDocumentで再現するにはどうすればよいでしょうか。
まだ文法など全く理解できていませんが、素人目に『Range(”ActiveDocument .tables (1) .cell (1.1)”).Select .CleanContents』
などと書いてしまいたい訳です(当然、動きませんでした)
加えて、WordVBAを中心にお勧めの書籍などありましたら教えていただきたいです。
今の書籍は痒いところに手が届かず…
Wordのユーザーフォームを作りたいのですがExcelの書籍しかなくて詰みました。
Excelのセル番地『A1』に相当するのが『ActiveDocument .tables (1) .cell (1.1)』というところまで突き止めて、
とりあえずテキストボックスに打ち込んだ文字列をセルに転記するところまではできたのですが、それ以上のことができません。
例えば繰り返し同じフォームを使う前提で、古いデータを削除したい時、Excelならば
『Range("A1") .CleanContents』で済むっぽい(うろ覚え)ですが
これをActiveDocumentで再現するにはどうすればよいでしょうか。
まだ文法など全く理解できていませんが、素人目に『Range(”ActiveDocument .tables (1) .cell (1.1)”).Select .CleanContents』
などと書いてしまいたい訳です(当然、動きませんでした)
加えて、WordVBAを中心にお勧めの書籍などありましたら教えていただきたいです。
今の書籍は痒いところに手が届かず…
865859
2019/05/28(火) 19:44:38.82ID:xKlK3b52866デフォルトの名無しさん
2019/05/29(水) 00:12:19.46ID:S0wmSPvZ >>864
定番は「最速攻略 Word マクロ / VBA徹底入門」
Word VBAの書籍やWEBサイトは選択肢が圧倒的に少ないから、基本がわかったらVBEのオブジェクトブラウザやネットでMSDNを見た方が確実
定番は「最速攻略 Word マクロ / VBA徹底入門」
Word VBAの書籍やWEBサイトは選択肢が圧倒的に少ないから、基本がわかったらVBEのオブジェクトブラウザやネットでMSDNを見た方が確実
867デフォルトの名無しさん
2019/05/29(水) 09:29:45.93ID:YAhbpcsl 学校でVBAを勉強した方はどんな参考で勉強したんでしょうか?
868デフォルトの名無しさん
2019/05/29(水) 09:30:35.46ID:YAhbpcsl ×参考
◯参考書
◯参考書
869デフォルトの名無しさん
2019/05/29(水) 09:32:43.10ID:YAhbpcsl 書籍の名前聞いてみたい
870デフォルトの名無しさん
2019/05/30(木) 15:12:11.08ID:V/L1IaNJ >>Wordのユーザーフォーム
必要性が今一分からん
必要性が今一分からん
871デフォルトの名無しさん
2019/05/30(木) 18:04:51.34ID:2aR1E9YD Wordは機能拡張に凝り出すと面白いよ
872デフォルトの名無しさん
2019/05/30(木) 18:38:59.73ID:3bWSKYGB873デフォルトの名無しさん
2019/05/30(木) 18:47:13.10ID:2aR1E9YD >>864
'選択範囲内にあるテーブルの一行目以外をクリアします。
Sub clearSelectedTableData()
If Word.Application.Selection.Tables.Count = 0 Then
'MsgBox "Select Any Table!"
Exit Sub
End If
Dim t As Word.Table
For Each t In Word.Application.Selection.Tables
Dim r As Long, c As Long
For r = 2 To t.Rows.Count
For c = 1 To t.Columns.Count
t.Cell(r, c).Range.Text = ""
Next c
Next r
Next t
End Sub
'選択範囲内にあるテーブルの一行目以外をクリアします。
Sub clearSelectedTableData()
If Word.Application.Selection.Tables.Count = 0 Then
'MsgBox "Select Any Table!"
Exit Sub
End If
Dim t As Word.Table
For Each t In Word.Application.Selection.Tables
Dim r As Long, c As Long
For r = 2 To t.Rows.Count
For c = 1 To t.Columns.Count
t.Cell(r, c).Range.Text = ""
Next c
Next r
Next t
End Sub
874デフォルトの名無しさん
2019/05/30(木) 19:32:14.84ID:2aR1E9YD こっちのがスマートだった
'選択範囲内にあるテーブルの一行目以外をクリアします。
Sub clearSelectedTableData()
If Word.Application.Selection.Tables.Count = 0 Then
'MsgBox "Select Any Table!"
Exit Sub
End If
Dim t As Word.Table
For Each t In Word.Application.Selection.Tables
If t.Rows.Count > 2 Then
Dim r As Long
For r = 2 To t.Rows.Count
t.Rows(r).Range.Delete
Next r
End If
Next t
End Sub
'選択範囲内にあるテーブルの一行目以外をクリアします。
Sub clearSelectedTableData()
If Word.Application.Selection.Tables.Count = 0 Then
'MsgBox "Select Any Table!"
Exit Sub
End If
Dim t As Word.Table
For Each t In Word.Application.Selection.Tables
If t.Rows.Count > 2 Then
Dim r As Long
For r = 2 To t.Rows.Count
t.Rows(r).Range.Delete
Next r
End If
Next t
End Sub
875デフォルトの名無しさん
2019/05/30(木) 19:50:35.91ID:2aR1E9YD もし文字編集でcell()下位の.Rangeが省略されてるのを知らないと
cell.Range.Deleteの文字削除とcell.Deleteのセル削除が
使い分けができないので注意
cell.Range.Deleteの文字削除とcell.Deleteのセル削除が
使い分けができないので注意
876デフォルトの名無しさん
2019/05/30(木) 22:47:58.04ID:JR52NV0g877デフォルトの名無しさん
2019/05/30(木) 23:32:10.68ID:2aR1E9YD >>876
リボンやクイックアクセスツールバーとかで増やすほうね>機能拡張
リボンやクイックアクセスツールバーとかで増やすほうね>機能拡張
878デフォルトの名無しさん
2019/05/31(金) 00:15:43.14ID:P50R/Vqw NothingとNullとEmptyの違いがわからない
MSはナンセンス、はっきりわかんだね
MSはナンセンス、はっきりわかんだね
879デフォルトの名無しさん
2019/05/31(金) 00:35:41.84ID:/aDGaFpI EmptyはVariant型の初期状態(何も入ってない)
セルの初期状態でもある
確認方法
新規ワークシートに対して、イミディエイトウィンドウで
Print TypeName(Cells(1,1).Value)
とすると
Empty
と表示される
Nothingはオブジェクト型変数にオブジェクトが代入されていない(結びつけられていない)状態
NullはExcelだと出番がないと思っていい
主にAccessでデータを扱う時にNullが必要な場面が出てくる
セルの初期状態でもある
確認方法
新規ワークシートに対して、イミディエイトウィンドウで
Print TypeName(Cells(1,1).Value)
とすると
Empty
と表示される
Nothingはオブジェクト型変数にオブジェクトが代入されていない(結びつけられていない)状態
NullはExcelだと出番がないと思っていい
主にAccessでデータを扱う時にNullが必要な場面が出てくる
880デフォルトの名無しさん
2019/05/31(金) 01:16:13.09ID:gZfVve3x 複数セルのRangeからプロパティとってくるとき不一致だとNullになるくらいやな
881デフォルトの名無しさん
2019/06/02(日) 23:52:18.62ID:I/vPFDmN ユーザーフォームの、複数のテキストボックス、
例えばオブジェクト名をtb1、tb2とかにしてループ文に組み込むということはできますか?
オブジェクト変数というのが関係しそうな気がするんですが、
テキストを読んでも理解できない…
例えばオブジェクト名をtb1、tb2とかにしてループ文に組み込むということはできますか?
オブジェクト変数というのが関係しそうな気がするんですが、
テキストを読んでも理解できない…
882デフォルトの名無しさん
2019/06/02(日) 23:56:26.76ID:56udfPFB883デフォルトの名無しさん
2019/06/03(月) 02:05:13.53ID:OjX7Po3D 普通はテキストボックスのTagプロバティに区別できるキーワード入れといて
For eachでUserform.controlsやると思う
For eachでUserform.controlsやると思う
884デフォルトの名無しさん
2019/06/03(月) 08:31:11.52ID:mpVNxBbp >>881
controls(”tb” & i)
controls(”tb” & i)
885デフォルトの名無しさん
2019/06/03(月) 13:44:44.83ID:DCISZKmM886デフォルトの名無しさん
2019/06/08(土) 00:31:30.90ID:ycKO1KOa vba スタンダード 、accessのおすすめの問題集ってやっぱり公式テキストでしょうか。
887デフォルトの名無しさん
2019/06/08(土) 11:47:13.10ID:pWKWNjKi エクセル Cells(1,1)
ワード Cell(1,1)
↑
は? 何でワードにはsが無い?
ワード Cell(1,1)
↑
は? 何でワードにはsが無い?
888デフォルトの名無しさん
2019/06/08(土) 16:19:13.22ID:pA8BerVC >>886
先月に出題範囲かわったし公式でしょ
先月に出題範囲かわったし公式でしょ
889デフォルトの名無しさん
2019/06/08(土) 16:27:53.67ID:pA8BerVC >>887
Word.Selection.CellsとかRow.Cellsとかあるで
Tableには.Cell(1,1)しかないがな
ちなCellsはxy指定できんがCellはxy指定必須や
エクセルのプロパティのほうが異常なんやで
Word.Selection.CellsとかRow.Cellsとかあるで
Tableには.Cell(1,1)しかないがな
ちなCellsはxy指定できんがCellはxy指定必須や
エクセルのプロパティのほうが異常なんやで
890デフォルトの名無しさん
2019/06/12(水) 20:44:31.77ID:WUwNpP1f 新垣結衣 AVデビュー
https://www.xvideos.com/video48369883/_ai_
https://www.xvideos.com/video48369883/_ai_
891デフォルトの名無しさん
2019/06/12(水) 21:19:56.07ID:Hop9ON+a vba エキスパート は、excel ベーシック以外は公式テキストまだだから受験は待ったほうがいいですよね。
892デフォルトの名無しさん
2019/06/19(水) 04:56:48.65ID:tVNS+22r 【出資】松本卓朗 人工知能詐欺【注意】
https://rio2016.5ch.net/test/read.cgi/rikei/1560859403/
https://rio2016.5ch.net/test/read.cgi/rikei/1560859403/
893デフォルトの名無しさん
2019/06/24(月) 19:31:10.71ID:XS1zoxjN 以前word VBAの質問をした者ですが、その節はありがとうございました。
お陰様で処女作のユーザーフォームが完成しかかっているのですが、最終問題に難儀しています。
やりたい事:「保存」ボタンを押す→ActiveDocumentと同じ場所に「記録表」というフォルダを作成し、
その中に「"氏名”」というファイルを生成する。既に「記録表」のフォルダがあればフォルダは作成せず、
そちらにファイルを生成する。
なお、不特定多数のユーザーが使う前提です(保存場所を手打ちしたらユーザー名で詰む)
四苦八苦しましたが、ひとまず確認用にdesktopに生成しようとしてなんかユーザーフォルダの滅っ茶根深い場所に生成されたり、
推測で打ってみたメソッドが全く機能しなかったり(フォルダの有無を確認するようなのって何だろう)
なんというか、Excelのfxボタンみたいにメソッドの内容を教えてくれるやつ、ないんですかね…
ちなみに職場のPCはスタンドアロンでヘルプに繋がらず、自宅PCにはOfficeが入ってないです。
お陰様で処女作のユーザーフォームが完成しかかっているのですが、最終問題に難儀しています。
やりたい事:「保存」ボタンを押す→ActiveDocumentと同じ場所に「記録表」というフォルダを作成し、
その中に「"氏名”」というファイルを生成する。既に「記録表」のフォルダがあればフォルダは作成せず、
そちらにファイルを生成する。
なお、不特定多数のユーザーが使う前提です(保存場所を手打ちしたらユーザー名で詰む)
四苦八苦しましたが、ひとまず確認用にdesktopに生成しようとしてなんかユーザーフォルダの滅っ茶根深い場所に生成されたり、
推測で打ってみたメソッドが全く機能しなかったり(フォルダの有無を確認するようなのって何だろう)
なんというか、Excelのfxボタンみたいにメソッドの内容を教えてくれるやつ、ないんですかね…
ちなみに職場のPCはスタンドアロンでヘルプに繋がらず、自宅PCにはOfficeが入ってないです。
894デフォルトの名無しさん
2019/06/24(月) 22:54:40.46ID:klKakRL3895デフォルトの名無しさん
2019/06/25(火) 05:52:40.82ID:A+zOKxp7 今オフラインのヘルプって提供されてないんじゃないのか?
896デフォルトの名無しさん
2019/06/25(火) 08:17:29.97ID:uunD1dKc897デフォルトの名無しさん
2019/06/25(火) 08:27:47.11ID:uunD1dKc898デフォルトの名無しさん
2019/06/25(火) 10:33:29.10ID:aRzPCUod 公式オフラインヘルプがあったのは2013だな
2016もオフライン版があるけど英語
https://github.com/OfficeDev/VBA-content/
基本的な機能は2013からあんまり変わってないから、2013用のヘルプを入れてしまうという手もある
使い勝手は悪いけど、いつでも参照できるという利点はあるから
2016もオフライン版があるけど英語
https://github.com/OfficeDev/VBA-content/
基本的な機能は2013からあんまり変わってないから、2013用のヘルプを入れてしまうという手もある
使い勝手は悪いけど、いつでも参照できるという利点はあるから
899デフォルトの名無しさん
2019/06/26(水) 09:21:12.11ID:IYAeNPRu Activedocument.Pathで所在フォルダのパスが出せる
これとフォルダ名とファイル名繋げた文字列つくればSaveAs2の引数にできる
これとフォルダ名とファイル名繋げた文字列つくればSaveAs2の引数にできる
900デフォルトの名無しさん
2019/06/26(水) 18:32:58.67ID:pdVAutd4 質問です。excel2016の並び替え機能で
漢字、かな(あ〜ん)、アルファベット(a〜z)で並べ替えて漢字の中でも「本店」を最上位とできませんかね?
降順だと上記並びなのですが、かな(ん→あ)、アルファベット(z→a)になります。
Custumorder に「本店」を入力すると漢字中で1番下になります。
よろしくお願いします
漢字、かな(あ〜ん)、アルファベット(a〜z)で並べ替えて漢字の中でも「本店」を最上位とできませんかね?
降順だと上記並びなのですが、かな(ん→あ)、アルファベット(z→a)になります。
Custumorder に「本店」を入力すると漢字中で1番下になります。
よろしくお願いします
901デフォルトの名無しさん
2019/06/26(水) 20:26:59.08ID:JKpFRzRw >>900
本店の前にスペース入れる
本店の前にスペース入れる
902デフォルトの名無しさん
2019/06/26(水) 21:08:13.27ID:pdVAutd4903デフォルトの名無しさん
2019/07/04(木) 12:19:45.93ID:Siuy47lc Wordの表で、
ActiveDocument.Tables(2).Select
みたいに選択したいのですが、どれだけ表を分割しても、
全ての表が Tables(1) という扱いなようでエラーになります。
ひとつ前に似たようなものを組んだ時には問題なくTables(2)になりましたが、
それと構文上は全く違いはありません。
どうしたら Tables(2)という扱いになるのでしょうか。
ActiveDocument.Tables(2).Select
みたいに選択したいのですが、どれだけ表を分割しても、
全ての表が Tables(1) という扱いなようでエラーになります。
ひとつ前に似たようなものを組んだ時には問題なくTables(2)になりましたが、
それと構文上は全く違いはありません。
どうしたら Tables(2)という扱いになるのでしょうか。
904デフォルトの名無しさん
2019/07/04(木) 22:43:55.95ID:lDcVSkIh ユーザーフォーム内のコンボボックスにUSBの中にある画像一覧というフォルダ内の全ての画像名を表示したいのですがうまくいきません。
どのように変更すればよいか教えていただけませんか?
Private Sub UserForm1_load()
Dim myList As String
Dim myPath As String
Dim iName As String
myPath = "D:/画像一覧/*jpeg"
fName = Dir(myPath & "*.jpeg")
Do While iName <> ""
If myList <> "" Then
myList = myList & " " & iName
Else
myList = iName
End If
iName = Dir
Loop
If myList = "" Then Exit Sub
myList = Split(myList)
ComboBox1.List = myList
End Sub
どのように変更すればよいか教えていただけませんか?
Private Sub UserForm1_load()
Dim myList As String
Dim myPath As String
Dim iName As String
myPath = "D:/画像一覧/*jpeg"
fName = Dir(myPath & "*.jpeg")
Do While iName <> ""
If myList <> "" Then
myList = myList & " " & iName
Else
myList = iName
End If
iName = Dir
Loop
If myList = "" Then Exit Sub
myList = Split(myList)
ComboBox1.List = myList
End Sub
905デフォルトの名無しさん
2019/07/05(金) 02:42:43.50ID:grV1bh4s 取得するのが D:/画像一覧/*jpeg*.jpeg になってるとか
fName は iName の間違いじゃないのかとか
myList は String なのにSplitした後のものを代入してるとか
fName は iName の間違いじゃないのかとか
myList は String なのにSplitした後のものを代入してるとか
906デフォルトの名無しさん
2019/07/06(土) 12:30:25.64ID:z73aGQye907デフォルトの名無しさん
2019/07/25(木) 16:22:05.73ID:eKMV/4VB ExcelVBAのユーザーフォーム上で、PDFを表示、操作をしたいです。
ですが、ユーザーフォームにコントロールを追加しようとすると、
「要素が見つかりません」とダイアログが表示され出来ません。
どなたか解決策をご存じの方がいましたら、教えていただけますでしょうか。。
Acrobat pro DCはインストールしてあり、ExcelはOffice365を最新の状態で使用してます。
ですが、ユーザーフォームにコントロールを追加しようとすると、
「要素が見つかりません」とダイアログが表示され出来ません。
どなたか解決策をご存じの方がいましたら、教えていただけますでしょうか。。
Acrobat pro DCはインストールしてあり、ExcelはOffice365を最新の状態で使用してます。
908デフォルトの名無しさん
2019/07/25(木) 18:51:11.10ID:HFVXfXT2 >>907
EXCELは専用スレがあるので、そちらへどうぞ
EXCELは専用スレがあるので、そちらへどうぞ
909デフォルトの名無しさん
2019/07/26(金) 10:59:16.22ID:nW8IFIW6910デフォルトの名無しさん
2019/08/14(水) 15:00:22.98ID:Jc+eFMLQ ここで質問していいかわからないんですが、違ったら誘導していただけると助かります。
メッセージボックスを最前面にするために以下のコードを利用したいのですが、呼び出し元の下から3行目のvbOKOnly を vbYesNo に替えた後、選択ボタンを取得する方法がわかりません。
どのようなコードを足したらいいかご教示いただけないでしょうか。
【呼び出し元】
Option Explicit
Dim WSHObj
Dim Args
Set WSHobj = WScript.CreateObject("WScript.Shell")
Args = "cscript ""C:\Program Files\PPX\script\WSHPopUP.vbs""" _
& " ""出力メッセージ""" _
& " 0" _
& " ""VBS名称""" _
& " " & vbOKOnly ←vbYesNoに替える
WSHObj.Run Args,0,true
Set WSHobj = Nothing
【WSHPopUP.vbs】
Option Explicit
Dim Arg
Dim WSHObj
Set WSHobj = WScript.CreateObject("WScript.Shell")
Set Arg = WScript.Arguments
WSHObj.Popup Arg(0),Arg(1),Arg(2),Arg(3)
Set WSHobj = Nothing
よろしくお願いします。
メッセージボックスを最前面にするために以下のコードを利用したいのですが、呼び出し元の下から3行目のvbOKOnly を vbYesNo に替えた後、選択ボタンを取得する方法がわかりません。
どのようなコードを足したらいいかご教示いただけないでしょうか。
【呼び出し元】
Option Explicit
Dim WSHObj
Dim Args
Set WSHobj = WScript.CreateObject("WScript.Shell")
Args = "cscript ""C:\Program Files\PPX\script\WSHPopUP.vbs""" _
& " ""出力メッセージ""" _
& " 0" _
& " ""VBS名称""" _
& " " & vbOKOnly ←vbYesNoに替える
WSHObj.Run Args,0,true
Set WSHobj = Nothing
【WSHPopUP.vbs】
Option Explicit
Dim Arg
Dim WSHObj
Set WSHobj = WScript.CreateObject("WScript.Shell")
Set Arg = WScript.Arguments
WSHObj.Popup Arg(0),Arg(1),Arg(2),Arg(3)
Set WSHobj = Nothing
よろしくお願いします。
911デフォルトの名無しさん
2019/08/14(水) 19:26:49.04ID:uFuQVnLY 【呼び出し元】
Option Explicit
Dim WSHObj
Dim Args
Set WSHobj = WScript.CreateObject("WScript.Shell")
Args = "cscript ""C:\Program Files\PPX\script\WSHPopUP.vbs""" _
& " ""出力メッセージ""" _
& " 0" _
& " ""VBS名称""" _
& " " & vbYesNo
Dim hoge '受け取り用に追加
hoge = WSHObj.Run(Args,0,true) 'この変数hogeにvbYes=6かvbNo=7が入る。
'何か処理を書く
Set WSHobj = Nothing
【WSHPopUP.vbs】
Option Explicit
Dim Arg
Dim WSHObj
Set WSHobj = WScript.CreateObject("WScript.Shell")
Set Arg = WScript.Arguments
Dim fuga '戻り値用に追加
fuga = WSHObj.Popup Arg(0),Arg(1),Arg(2),Arg(3) 'popupの戻り値を取得
WSHObj.Quit fuga '呼び出し元に終了コードとして返す
Set WSHobj = Nothing
Option Explicit
Dim WSHObj
Dim Args
Set WSHobj = WScript.CreateObject("WScript.Shell")
Args = "cscript ""C:\Program Files\PPX\script\WSHPopUP.vbs""" _
& " ""出力メッセージ""" _
& " 0" _
& " ""VBS名称""" _
& " " & vbYesNo
Dim hoge '受け取り用に追加
hoge = WSHObj.Run(Args,0,true) 'この変数hogeにvbYes=6かvbNo=7が入る。
'何か処理を書く
Set WSHobj = Nothing
【WSHPopUP.vbs】
Option Explicit
Dim Arg
Dim WSHObj
Set WSHobj = WScript.CreateObject("WScript.Shell")
Set Arg = WScript.Arguments
Dim fuga '戻り値用に追加
fuga = WSHObj.Popup Arg(0),Arg(1),Arg(2),Arg(3) 'popupの戻り値を取得
WSHObj.Quit fuga '呼び出し元に終了コードとして返す
Set WSHobj = Nothing
912デフォルトの名無しさん
2019/08/14(水) 19:27:35.96ID:uFuQVnLY 他にExecを使う方法もある
913デフォルトの名無しさん
2019/08/14(水) 20:05:03.77ID:6C5bzX4k vbDefaultButton1 とか、そういうのじゃなくて?
914デフォルトの名無しさん
2019/08/15(木) 00:01:28.86ID:GUoAoBO9915デフォルトの名無しさん
2019/08/16(金) 11:35:25.09ID:vco+QnrA >>911
>910,>914です。
教えていただいたコードを試してみたのですが、
‘何か処理を書く
のところに
MsgBox hoge
と入れたのですが、「はい」「いいえ」どちらの場合も 0 が返されます。
どうしたらいいでしょうか
>910,>914です。
教えていただいたコードを試してみたのですが、
‘何か処理を書く
のところに
MsgBox hoge
と入れたのですが、「はい」「いいえ」どちらの場合も 0 が返されます。
どうしたらいいでしょうか
916デフォルトの名無しさん
2019/08/16(金) 13:41:00.72ID:2LlAcZB1 ???
VBAなの?
VBSなの?
MsgBox使えるのに、何でWscript使ってんの?
VBAなの?
VBSなの?
MsgBox使えるのに、何でWscript使ってんの?
917デフォルトの名無しさん
2019/08/16(金) 13:48:44.09ID:mZqFzvyq 朗報
【アプデ/10】 2019年8月14日のWindowsUpdate後、VB関連が死亡。Windows10全バージョンにて
https://asahi.5ch.net/test/read.cgi/newsplus/1565930238/
【アプデ/10】 2019年8月14日のWindowsUpdate後、VB関連が死亡。Windows10全バージョンにて
https://asahi.5ch.net/test/read.cgi/newsplus/1565930238/
918デフォルトの名無しさん
2019/08/16(金) 14:13:30.60ID:WTD6eyC3919デフォルトの名無しさん
2019/08/19(月) 10:24:33.34ID:ELmh1Bgt >>918
返信遅くなってすみません。
レスの通りに修正し、
さらに
fuga = WSHObj.Popup Arg(0),Arg(1),Arg(2),Arg(3) 'popupの戻り値を取得
↓
fuga = WSHObj.Popup(Arg(0),Arg(1),Arg(2),Arg(3)) 'popupの戻り値を取得
に変更し、成功しました。
たいへん助かりました。
ありがとうございました。
返信遅くなってすみません。
レスの通りに修正し、
さらに
fuga = WSHObj.Popup Arg(0),Arg(1),Arg(2),Arg(3) 'popupの戻り値を取得
↓
fuga = WSHObj.Popup(Arg(0),Arg(1),Arg(2),Arg(3)) 'popupの戻り値を取得
に変更し、成功しました。
たいへん助かりました。
ありがとうございました。
920デフォルトの名無しさん
2019/09/25(水) 10:50:56.65ID:L8CrQHgr WordのアクティブXコントロールのテキストボックスなのですが
BackStyleを0設定すると背景色は消えるのですが
デザインモードを解除すると背景色が出てしまいます
これはバグでしょうか
BackStyleを0設定すると背景色は消えるのですが
デザインモードを解除すると背景色が出てしまいます
これはバグでしょうか
921デフォルトの名無しさん
2019/11/05(火) 18:33:26.09ID:CrKvYzfV922デフォルトの名無しさん
2019/11/05(火) 18:35:53.47ID:CrKvYzfV923デフォルトの名無しさん
2019/11/06(水) 06:26:58.33ID:jiZZUv+M924デフォルトの名無しさん
2019/11/06(水) 06:26:59.50ID:jiZZUv+M925デフォルトの名無しさん
2019/11/21(木) 09:09:00.43ID:IRESAa/B Exchange / Outtlook VBAの質問です
初歩的な質問で申し訳ありませんが、お知恵を拝借できないでしょうか
任意の名前を持つ配布リストや連絡先グループに属するExchangeユーザーのSMTPアドレスの一覧を取得するにはどうしたら良いのでしょうか
配布リストや連絡先グループをExchange ユーザーとして取得するところまでは出来ているのですが、そこから先がうまくいきません
なお配布リスト、連絡先グループいずれも個人ユーザーのみが登録されている前提なので、再帰によるメンバー取得は不要な状況です
初歩的な質問で申し訳ありませんが、お知恵を拝借できないでしょうか
任意の名前を持つ配布リストや連絡先グループに属するExchangeユーザーのSMTPアドレスの一覧を取得するにはどうしたら良いのでしょうか
配布リストや連絡先グループをExchange ユーザーとして取得するところまでは出来ているのですが、そこから先がうまくいきません
なお配布リスト、連絡先グループいずれも個人ユーザーのみが登録されている前提なので、再帰によるメンバー取得は不要な状況です
926デフォルトの名無しさん
2019/12/31(火) 13:22:12.18ID:CEriAQ2K エスパー的にはexchangeユーザーのユーザー一覧と配布リストのユーザーの
名前を比較すればいいんじゃね
名前を比較すればいいんじゃね
927デフォルトの名無しさん
2020/04/20(月) 00:19:17.36ID:DXvjb/RZ 3日がかりの捜索ww あきらめないのな
928デフォルトの名無しさん
2020/05/10(日) 01:11:39.52ID:DSeO3ORc 3日どころじゃないぞ
929デフォルトの名無しさん
2020/05/25(月) 10:28:15.88ID:vLFHqXr3930デフォルトの名無しさん
2020/05/25(月) 12:24:29.96ID:palYJx03 半年放置で読むかね
931デフォルトの名無しさん
2020/06/10(水) 10:39:28.23ID:vabPclBn932デフォルトの名無しさん
2020/06/27(土) 08:55:28.74ID:9qJBLgyD Aex
933デフォルトの名無しさん
2020/06/27(土) 16:37:07.95ID:TjDVHLrR VBAの質問スレで質問するのはなぜ馬鹿ばっかりなのですか?
934デフォルトの名無しさん
2020/06/27(土) 16:43:50.13ID:CiV3+vm0 >>933
このスレのレベルを知ってる普通以上の人はここを頼ったりはしないから
このスレのレベルを知ってる普通以上の人はここを頼ったりはしないから
935デフォルトの名無しさん
2020/07/11(土) 22:25:50.10ID:R8+8lu0C 頼むからVBAでWin32 APIを呼び出すのはやめてくれ
そこまで要求するなら包括的な自作DLLを作ればよいと
そこまで要求するなら包括的な自作DLLを作ればよいと
936デフォルトの名無しさん
2020/07/12(日) 04:44:26.92ID:+vVO/8n9 >>935
なんでやめてほしいの?
なんでやめてほしいの?
937デフォルトの名無しさん
2020/07/12(日) 07:53:31.55ID:tbEOHCQG ものぐさが使うのがVBAなのに
いちいちDLL化なんてめんどくせえ
いちいちDLL化なんてめんどくせえ
938デフォルトの名無しさん
2020/07/12(日) 10:51:54.06ID:03QLQuvk >>936
Declare文が多すぎてコードが見づらい
Declare文が多すぎてコードが見づらい
939デフォルトの名無しさん
2020/07/12(日) 11:07:05.40ID:4WTYr4qc 見なきゃいいだろ
940デフォルトの名無しさん
2020/07/12(日) 14:43:36.83ID:HEMY1mlG Win32API使える奴がDeclare文読むの?
そりゃ、間違ってるとかおかしなのも中にゃあるけど、普通そんなとこ見ないだろ。
そりゃ、間違ってるとかおかしなのも中にゃあるけど、普通そんなとこ見ないだろ。
941デフォルトの名無しさん
2020/07/14(火) 21:09:03.79ID:66utiKuE 質問スレにも書き込んだのですが二つのieを起動して2つ目のieでpdfを開いて名前をつけて保存したいのですがexecwbを行うと一つ目のieのhtmlが選択されてしまいます。どうかやり方を教えてください。よろしくお願いします。getIEはシェル取得ファンクションです。
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ie.navigate "http://yahoo.jp”
Dim ie2 As InternetExplorer
Set ie2 = CreateObject("InternetExplorer.Application")
ie2.Visible = True
ie2.Navigate2 "C:\\Desktop\test.pdf", 1
Set ie2 = getIE("test")
Dim test As String
test = "c:\test\test.pdf"
ie2.ExecWB OLECMDID_SAVEAS, OLECMDEXECOPT_DONTPROMPTUSER, test
End Sub
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ie.navigate "http://yahoo.jp”
Dim ie2 As InternetExplorer
Set ie2 = CreateObject("InternetExplorer.Application")
ie2.Visible = True
ie2.Navigate2 "C:\\Desktop\test.pdf", 1
Set ie2 = getIE("test")
Dim test As String
test = "c:\test\test.pdf"
ie2.ExecWB OLECMDID_SAVEAS, OLECMDEXECOPT_DONTPROMPTUSER, test
End Sub
942デフォルトの名無しさん
2020/07/14(火) 21:45:01.80ID:euO1Ygvg 初心者です。どうかお力添えをよろしくお願いします。
943デフォルトの名無しさん
2020/07/14(火) 22:53:58.63ID:euO1Ygvg すいません 自己解決しました。単純なスペルミスでした
944デフォルトの名無しさん
2020/08/03(月) 07:54:11.09ID:4AChPi7X 製品番号のフォルダ検索して中のPDFファイルを開くようなマクロ書いてるんだけど
先日Officeのアップデートしたら、件のマクロがしばらく応答なしになって
悪意のあるマクロ云々とか言われてExcel強制終了になった
それ以後そのマクロは激遅に
ブックのファイル名変えたりマクロの関数名変えたりするとしばらくは元の速度に戻るが
1日位経つとまた遅くなる
調べてみたら、VBScript.RegExpのExecuteメソッドが10秒位かかるようになってる
通常は30msで終わるような代物がだ
どうもShellやRunで一度に多数のPDFファイルを開いているのがお気に召さなかったらしく
ファイル名や関数名でアンチウィルスのブラックリストに載る?
そのあとはそれっぽい名前のメソッドが標的になり遅くなるような感じ
こういうの経験した人いる?
先日Officeのアップデートしたら、件のマクロがしばらく応答なしになって
悪意のあるマクロ云々とか言われてExcel強制終了になった
それ以後そのマクロは激遅に
ブックのファイル名変えたりマクロの関数名変えたりするとしばらくは元の速度に戻るが
1日位経つとまた遅くなる
調べてみたら、VBScript.RegExpのExecuteメソッドが10秒位かかるようになってる
通常は30msで終わるような代物がだ
どうもShellやRunで一度に多数のPDFファイルを開いているのがお気に召さなかったらしく
ファイル名や関数名でアンチウィルスのブラックリストに載る?
そのあとはそれっぽい名前のメソッドが標的になり遅くなるような感じ
こういうの経験した人いる?
945デフォルトの名無しさん
2020/08/03(月) 12:15:10.36ID:wycAObPT アンチウィルスソフトとかいうウィルスを捨てろ
946デフォルトの名無しさん
2020/08/04(火) 17:10:57.70ID:FjnHeWDC 会社のPCじゃなければそれもありだが…
paloalto trapsとかいう奴
毎回反応する訳じゃないのが嫌だし
編集中のデータも問答無用でごっそり強制終了しやがるふざけんな
paloalto trapsとかいう奴
毎回反応する訳じゃないのが嫌だし
編集中のデータも問答無用でごっそり強制終了しやがるふざけんな
947デフォルトの名無しさん
2020/08/05(水) 03:07:47.57ID:EWWIYLqc 除外指定すればエエやん
948デフォルトの名無しさん
2020/08/05(水) 09:06:26.86ID:FS19WAoY >VBScript.RegExpのExecuteが10秒
と
>ShellやRunで一度に多数のPDFファイルを開いている
の関連がわからんね
この二つは分けて原因を探るべきじゃ?
と
>ShellやRunで一度に多数のPDFファイルを開いている
の関連がわからんね
この二つは分けて原因を探るべきじゃ?
949デフォルトの名無しさん
2020/08/05(水) 09:37:11.18ID:FS19WAoY マクロ付ファイルでPDF開かせるてのは相当に怪しいと捉えられる可能性は高いね
セキュリティ変更や除外設定なんてのは出来ればしたくないだろうし引っかからないような対策があればいいがな
ShellやRunでPDF開くんじゃなくExcelもしくはWordに取り込ませるようにすると引っ掛からないかもという気がしなくもない
セキュリティ変更や除外設定なんてのは出来ればしたくないだろうし引っかからないような対策があればいいがな
ShellやRunでPDF開くんじゃなくExcelもしくはWordに取り込ませるようにすると引っ掛からないかもという気がしなくもない
950デフォルトの名無しさん
2020/08/06(木) 06:47:20.91ID:SEE4FkRy VBAから直接PDFを開くんではなく
バッチファイルを書き出し実行することで反応の確率は減ったが
アンチウイルスが反応しやすい型番とかあってよくわからん
正規表現のexecuteメソッドは「それっぽい」名前のメソッドだろ?
これがアンチウイルスが反応したときに動作してた関数から呼ばれた時だけ遅くなるんだよ
同じブック中の他の関数から呼ばれた時は高速のままだ
dir関数でフォルダ内部のファイル名取得して正規表現検索してる時だけアホみたいに遅くなる時がある
バッチファイルを書き出し実行することで反応の確率は減ったが
アンチウイルスが反応しやすい型番とかあってよくわからん
正規表現のexecuteメソッドは「それっぽい」名前のメソッドだろ?
これがアンチウイルスが反応したときに動作してた関数から呼ばれた時だけ遅くなるんだよ
同じブック中の他の関数から呼ばれた時は高速のままだ
dir関数でフォルダ内部のファイル名取得して正規表現検索してる時だけアホみたいに遅くなる時がある
951デフォルトの名無しさん
2020/09/01(火) 22:25:39.71ID:zpaWCruh VBA開発を頼まれた いくら位金額を提示したら良いか誰か教えてほしい
内容は不動在庫を15店舗くらいあグループ店の売り上げデータから引取先の候補を検索するシステム
商品のバーコードから行き先候補を検索する予定。
この内容ってアウトソーシングするといくら位?
内容は不動在庫を15店舗くらいあグループ店の売り上げデータから引取先の候補を検索するシステム
商品のバーコードから行き先候補を検索する予定。
この内容ってアウトソーシングするといくら位?
952デフォルトの名無しさん
2020/09/01(火) 22:33:35.56ID:l37i0zd6 50円
953デフォルトの名無しさん
2020/09/02(水) 00:25:45.48ID:aLOgXzIZ 余裕みて1人週
954デフォルトの名無しさん
2020/09/02(水) 07:41:48.93ID:9bMNhGbM955デフォルトの名無しさん
2020/09/02(水) 12:23:19.05ID:IJ4By44m956デフォルトの名無しさん
2020/09/04(金) 13:35:21.25ID:YrY1uJ8P 皆さま回答ありがとうございました!
957デフォルトの名無しさん
2020/09/05(土) 14:34:31.84ID:NQbTfPgu >>944
遅レスだけど
速度が遅い件は経験ありますよ
うちの環境で調べたらSYMANTECのエンドポイントは大丈夫で、MSのディフェンダーだと遅かった
Win10のバージョンも影響したかもしれないけど、現行サポート対象バージョンは、ディフェンダーだとすべて遅い
会社のPCなんでActiveDirectory、SYMANTEC、SKYSEAがスタンダードなんだけど、更新時の不具合があったんで一部のPCでディフェンダーを使ってて発覚した
VBSの内容は、多少分岐やループはあるけど正規表現を使って置換するだけの簡単なものだった
遅レスだけど
速度が遅い件は経験ありますよ
うちの環境で調べたらSYMANTECのエンドポイントは大丈夫で、MSのディフェンダーだと遅かった
Win10のバージョンも影響したかもしれないけど、現行サポート対象バージョンは、ディフェンダーだとすべて遅い
会社のPCなんでActiveDirectory、SYMANTEC、SKYSEAがスタンダードなんだけど、更新時の不具合があったんで一部のPCでディフェンダーを使ってて発覚した
VBSの内容は、多少分岐やループはあるけど正規表現を使って置換するだけの簡単なものだった
レス数が950を超えています。1000を超えると書き込みができなくなります。
ニュース
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… [BFU★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★2 [BFU★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★2 [BFU★]
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 [Hitzeschleier★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 【維新】吉村知事「中国人観光客だけに頼るビジネスモデル変えていかないといけない」「高市総理の発言は撤回する必要はない」 [Hitzeschleier★]
- 中国高官と話す外務省局長の表情、やばい [175344491]
- 【悲報】安倍晋三と高市早苗、どっちがヤベーの🤔 [616817505]
- 中国外務省「日中関係の悪化は高市早苗首相が原因」と名指しで強く非難。キタ━(゚∀゚)━! [153490809]
- 日本政府「高市総理の発言は問題ないと伝え、中国総領事のSNS投稿は問題があると中国に伝えました😊」 [931948549]
- 【速報】中国が日中関係悪化は高市氏に責任と名指しで非難 [931948549]
- ネトウヨ論調決まる「寧ろ迷惑中国人観光客が減ることで日本人の旅行が活性化され経済的には影響ない」 <mark>[ひまわり学級]</mark> [511393199]
