VBAなんでも質問スレ Part2 [転載禁止]©2ch.net

レス数が900を超えています。1000を超えると表示できなくなるよ。
1デフォルトの名無しさん
垢版 |
2015/05/21(木) 10:52:44.71ID:KLv0vQmm
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/
2019/05/10(金) 16:53:41.17ID:SsAAf7AE
Excel VBA 質問スレで質問してみます。お邪魔しました m( _ _ )m
825デフォルトの名無しさん
垢版 |
2019/05/12(日) 02:32:02.86ID:0u/cIV/f
>>823
オブジェクトなら同じものを頻繁に扱うときにコーディングミスをしにくくなる。

毎回、名前でアクセスしていると、ちょっとしたことで、別のものを間違って扱う可能性が高まって、実行時エラーを発生させやすくなる。

定数化していれば防げるが、定数のスコープを大きくしないといけないので、定数の値を変えるときにあっちこっちを確認しながら、直すことになり面倒なことになりやすい。
2019/05/13(月) 13:34:22.56ID:p6Zrf1zY
object型の初期状態はNothing
参照先が存在しない場合もNothing返るのがあってis式で判定できる
一方でvariantの初期状態はemptyなのでis式がエラーになる
827デフォルトの名無しさん
垢版 |
2019/05/13(月) 18:12:50.85ID:/95lNMvT
オブジェクトの値がNothingかどうかで判断するロジックはセンスがいいとは思えない。
2019/05/13(月) 22:51:51.62ID:RqskJpsp
Typenameとか列挙定数とかポインタ関数の値で判定するのが良いわな
829デフォルトの名無しさん
垢版 |
2019/05/13(月) 23:46:53.76ID:4/CDP/BQ
自分で変数の値をコントロールしているのに、Nothingかどうかをあちこちで確認しているクソプログラマと1年前に仕事した。
2019/05/14(火) 08:31:35.00ID:BLcva127
>>827
ライブラリ側は何で判定すべきなんだ?
それともNothingを渡されたら挙動は未定義とするとか?
831デフォルトの名無しさん
垢版 |
2019/05/14(火) 11:18:55.94ID:4FRIObo4
>>830
そのライブラリは他人が作ったものなのか?自分が作ったものなのか?
2019/05/14(火) 11:29:20.25ID:5X9vxJLP
判定すべきものが、誰が作ったかによって変わる?
833デフォルトの名無しさん
垢版 |
2019/05/14(火) 12:37:11.77ID:W+bs/bzK
ライブラリに状態を持つプロパティがあればいい。

他人が作ったものを使うしかなく、オブジェクトがNothingかどうかでしか判断できないのなら、そうするしかない。
2019/05/14(火) 13:35:55.15ID:UTGAJPws
>>833
ライブラリ関数が引数として受け取ったオブジェクトをどうNullチェックするかの話だぞ?
835デフォルトの名無しさん
垢版 |
2019/05/14(火) 16:16:33.74ID:E8REZJpG
いきなりライブラリと言われても何のことやらわからない。
2019/05/14(火) 17:30:53.68ID:UTGAJPws
>>835
>>827 が「オブジェクトの値がNothingかどうかで判断するロジック」って言ってるじゃん。
ある関数がオブジェクトを受け取ったときの判断方法の話だと思うんだけど、
自分はライブラリ作者なのでその場合どうするのがいいのか気になった。
2019/05/14(火) 21:45:48.80ID:s0Vi/y5R
普通にエラーでブレイクすればいいじゃん
2019/05/14(火) 22:22:18.25ID:jcYCvcdA
>>837
エラーとは限らないけど変数の状態に応じて処理を分けたいと言うのはある。
空のオブジェクトに対してはまた空を返すとかね。
>>829の言ってることはわかるんだけど、>>827>>828の主張がわからん。
Nothing判定はシンプルだけどTypeNameやenumだともっと分岐のパターンが増えちゃうじゃん。
839デフォルトの名無しさん
垢版 |
2019/05/14(火) 23:23:54.78ID:+OBjJPst
>>836
世の中、変なやつがいて、オブジェクト変数に値をセットして、何も変わるはずがないのに、直後にオブジェクト変数の値がNothingかどうか判定するコードを書くやつがいる。
2019/05/14(火) 23:30:59.65ID:KmX6ljlC
代入が成功したかどうか確認するテクニックも存在するから、そういう分野からの転職かな?
具体的には、コンパイラの型チェックを使った裏技だったり、ハードウェアの故障チェックなんかで使われる
2019/05/15(水) 00:37:47.48ID:yOOg6UjC
直後であってもサブルーチンに分かれてるなら
入力情報のチェックを行うのは普通のこと
842デフォルトの名無しさん
垢版 |
2019/05/15(水) 02:24:21.58ID:MwugOkQt
なんか例のCプログラマがしつこいけど、いまどき関係ない別プロセスがメモリ上の値を書き換えたりするミスは、OSレベルでもCPUレベルでもあるので、持論を批判されていると思って反論しなくていいよ。

ここは漠然としたVBAのスレッドだから、見ているひとにはあなたの言うことは難しくて理解できないと思うよ。

スルー力がないのか、寂しくてかまってほしいのか知らないけど、要はクソコードを書くなと言ってるだけだ。
843デフォルトの名無しさん
垢版 |
2019/05/15(水) 02:28:07.88ID:MwugOkQt
なんでVBAスレで組み込み系のショボいハードウェアでのプログラミングを語っているのか?

ハードウェア、OS、ミドルウェア、プログラミング言語によって考え方やどこまで想定するのかは全然、違うからいっしょくたにしないでもらいたい。
2019/05/15(水) 02:29:01.28ID:O3OiMSIx
一般ユーザー権限のアプリで別プロセスのメモリにアクセスできたのは、平成どころか昭和時代の話ですよ、おじいちゃん
希にOSやCPUのバグ騒ぎが起きますが、そんなのは例外中の例外なんで普通は気にしなくていいことです
845デフォルトの名無しさん
垢版 |
2019/05/15(水) 02:37:35.16ID:MwugOkQt
Windows 95、98、98SE、MeがいつのOSかもわからないのか
2019/05/15(水) 05:12:46.46ID:TahQLJDH
そこまでわかってるのに、タチの悪いやつだな
2019/05/15(水) 16:00:34.96ID:D3RbfE7K
イベント用インスタンスはPublicでやるの?
2019/05/15(水) 20:12:16.23ID:XVltvZnu
せっかくのイベントなのにPrivateにしたら星飛雄馬のクリスマスパーティーみたいになるじゃん
2019/05/15(水) 20:14:51.37ID:RIeke8Yt
>>848
座蒲団3枚あげる
850デフォルトの名無しさん
垢版 |
2019/05/15(水) 20:49:39.00ID:WHH9UP0v
何か面白いこと言った?
全然わからない。
興味あるからなぜ面白いか教えて?
2019/05/16(木) 02:08:04.88ID:Ab5DOH6n
>>850
ニコ動
https://www.nicovideo.jp/watch/sm9033179
852デフォルトの名無しさん
垢版 |
2019/05/16(木) 14:30:12.55ID:wWtnEH3A
コード書く画面を
背景は黒に、文字は白に、する方法を教えれ
2019/05/16(木) 17:24:09.37ID:EX4VaMcQ
>>852
ダークテーマと天に向かって3回唱える
854デフォルトの名無しさん
垢版 |
2019/05/16(木) 17:37:55.97ID:wWtnEH3A
>>853
知っておる
http://mevius.5ch.net/test/read.cgi/tech/1556203263/261-
下がってよいぞ
2019/05/23(木) 22:41:23.89ID:ufKYoT27
Wordで文字置換をしたいのですが、特定のフォントの文字列を検索して、文字列は変えずにフォントだけ変えたいです。半角を全角にしたいのですが可能でしょうか。ヒントだけでも教えていただけると有り難いです。
2019/05/23(木) 23:01:54.16ID:ubNtK04k
>>855
できる
任意のRangeのCharactersのフォントを一字ずつ調べて、探しているフォントが適用されている文字が見つかったらその文字のフォントを修正すればいい
半角から全角に変換するにはStrConv関数を使用し、第2引数conversionには列挙定数のvbWideを指定する
2019/05/23(木) 23:16:33.41ID:fmz+6NIG
wordの標準機能で半角全角変換あったような
2019/05/23(木) 23:29:43.67ID:ufKYoT27
>>856
ありがとうございます!
やってみます。

>>857
上手くいかなかったと思います。。
859859
垢版 |
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 くみこ
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
2019/05/28(火) 16:38:34.40ID:Z4r31Ymp
>>860
i=i+1 が抜けてるだけじゃね?
2019/05/28(火) 16:40:41.12ID:Z4r31Ymp
>>861
それと、行や列用の変数として r c 使ってもええんやで
863859
垢版 |
2019/05/28(火) 17:30:10.75ID:xKlK3b52
>>861
ファッ!それかも!
マジでありがとうです!
何かあったらまた聞きます
ホントありがとう、頭いい人!
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を中心にお勧めの書籍などありましたら教えていただきたいです。
今の書籍は痒いところに手が届かず…
865859
垢版 |
2019/05/28(火) 19:44:38.82ID:xKlK3b52
>>861
set temp = .findnext(temp)の下に
i=i+1を入れた所、できました。
本当にありがとう!助かりました(T^T)
2019/05/29(水) 00:12:19.46ID:S0wmSPvZ
>>864
定番は「最速攻略 Word マクロ / VBA徹底入門」
Word VBAの書籍やWEBサイトは選択肢が圧倒的に少ないから、基本がわかったらVBEのオブジェクトブラウザやネットでMSDNを見た方が確実
2019/05/29(水) 09:29:45.93ID:YAhbpcsl
学校でVBAを勉強した方はどんな参考で勉強したんでしょうか?
2019/05/29(水) 09:30:35.46ID:YAhbpcsl
×参考
◯参考書
2019/05/29(水) 09:32:43.10ID:YAhbpcsl
書籍の名前聞いてみたい
2019/05/30(木) 15:12:11.08ID:V/L1IaNJ
>>Wordのユーザーフォーム
必要性が今一分からん
2019/05/30(木) 18:04:51.34ID:2aR1E9YD
Wordは機能拡張に凝り出すと面白いよ
2019/05/30(木) 18:38:59.73ID:3bWSKYGB
>>870
いろんなソースで、色つけたり太字にしたり、用紙指定や段組みして印刷させる

炎上プロジェクトに突撃するのに必須
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
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
2019/05/30(木) 19:50:35.91ID:2aR1E9YD
もし文字編集でcell()下位の.Rangeが省略されてるのを知らないと
cell.Range.Deleteの文字削除とcell.Deleteのセル削除が
使い分けができないので注意
2019/05/30(木) 22:47:58.04ID:JR52NV0g
>>871
そうだろうけど、
他のOfficeでも出来るんじゃないの?
拡張って参照設定の事でしょ?

>>874
マジかよWord Tableって・・。
ExcelでSQLが使えたり、Officeは割と何でもありだとは思っていたが・・。
2019/05/30(木) 23:32:10.68ID:2aR1E9YD
>>876
リボンやクイックアクセスツールバーとかで増やすほうね>機能拡張
2019/05/31(金) 00:15:43.14ID:P50R/Vqw
NothingとNullとEmptyの違いがわからない
MSはナンセンス、はっきりわかんだね
2019/05/31(金) 00:35:41.84ID:/aDGaFpI
EmptyはVariant型の初期状態(何も入ってない)
セルの初期状態でもある
確認方法
新規ワークシートに対して、イミディエイトウィンドウで
Print TypeName(Cells(1,1).Value)
とすると
Empty
と表示される

Nothingはオブジェクト型変数にオブジェクトが代入されていない(結びつけられていない)状態

NullはExcelだと出番がないと思っていい
主にAccessでデータを扱う時にNullが必要な場面が出てくる
2019/05/31(金) 01:16:13.09ID:gZfVve3x
複数セルのRangeからプロパティとってくるとき不一致だとNullになるくらいやな
2019/06/02(日) 23:52:18.62ID:I/vPFDmN
ユーザーフォームの、複数のテキストボックス、
例えばオブジェクト名をtb1、tb2とかにしてループ文に組み込むということはできますか?
オブジェクト変数というのが関係しそうな気がするんですが、
テキストを読んでも理解できない…
2019/06/02(日) 23:56:26.76ID:56udfPFB
>>881
すべてのテキストボックスでループ。
目的のテキストボックス群で名前を元に絞り込みすりゃ良いんじゃね。
2019/06/03(月) 02:05:13.53ID:OjX7Po3D
普通はテキストボックスのTagプロバティに区別できるキーワード入れといて
For eachでUserform.controlsやると思う
2019/06/03(月) 08:31:11.52ID:mpVNxBbp
>>881
controls(”tb” & i)
2019/06/03(月) 13:44:44.83ID:DCISZKmM
>>881
オブジェクトの配列作って、という事だと思うけど
使うとしたらオブジェクト参照を保持したまま色々したい時ぐらいかも
値の参照とセットだけなら皆さん挙げられているcontrolsでやりますね
886デフォルトの名無しさん
垢版 |
2019/06/08(土) 00:31:30.90ID:ycKO1KOa
vba スタンダード 、accessのおすすめの問題集ってやっぱり公式テキストでしょうか。
2019/06/08(土) 11:47:13.10ID:pWKWNjKi
エクセル Cells(1,1)
ワード   Cell(1,1)
        ↑
      は? 何でワードにはsが無い?
2019/06/08(土) 16:19:13.22ID:pA8BerVC
>>886
先月に出題範囲かわったし公式でしょ
2019/06/08(土) 16:27:53.67ID:pA8BerVC
>>887
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_
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/
2019/06/24(月) 19:31:10.71ID:XS1zoxjN
以前word VBAの質問をした者ですが、その節はありがとうございました。
お陰様で処女作のユーザーフォームが完成しかかっているのですが、最終問題に難儀しています。
やりたい事:「保存」ボタンを押す→ActiveDocumentと同じ場所に「記録表」というフォルダを作成し、
その中に「"氏名”」というファイルを生成する。既に「記録表」のフォルダがあればフォルダは作成せず、
そちらにファイルを生成する。
なお、不特定多数のユーザーが使う前提です(保存場所を手打ちしたらユーザー名で詰む)

四苦八苦しましたが、ひとまず確認用にdesktopに生成しようとしてなんかユーザーフォルダの滅っ茶根深い場所に生成されたり、
推測で打ってみたメソッドが全く機能しなかったり(フォルダの有無を確認するようなのって何だろう)
なんというか、Excelのfxボタンみたいにメソッドの内容を教えてくれるやつ、ないんですかね…
ちなみに職場のPCはスタンドアロンでヘルプに繋がらず、自宅PCにはOfficeが入ってないです。
2019/06/24(月) 22:54:40.46ID:klKakRL3
>>893
オフラインヘルプインストールできなかったっけ… 見てみて

F2キーでオブジェクトブラウザが表示される
これ無しで開発なんてやってられない
2019/06/25(火) 05:52:40.82ID:A+zOKxp7
今オフラインのヘルプって提供されてないんじゃないのか?
2019/06/25(火) 08:17:29.97ID:uunD1dKc
>>893
デスクトップはエクスプローラーの左のとこにカタカナで出てるとこと同じやで
深いとこにできても、そちらから近道すればよろし
2019/06/25(火) 08:27:47.11ID:uunD1dKc
>>893
〉フォルダの有無確認
昔は Dir()だったけど、今は filesystemobjectかな。
参照設定も必要なので使い方も含めてggッテください
folderexists()
2019/06/25(火) 10:33:29.10ID:aRzPCUod
公式オフラインヘルプがあったのは2013だな

2016もオフライン版があるけど英語
https://github.com/OfficeDev/VBA-content/

基本的な機能は2013からあんまり変わってないから、2013用のヘルプを入れてしまうという手もある
使い勝手は悪いけど、いつでも参照できるという利点はあるから
2019/06/26(水) 09:21:12.11ID:IYAeNPRu
Activedocument.Pathで所在フォルダのパスが出せる
これとフォルダ名とファイル名繋げた文字列つくればSaveAs2の引数にできる
2019/06/26(水) 18:32:58.67ID:pdVAutd4
質問です。excel2016の並び替え機能で
漢字、かな(あ〜ん)、アルファベット(a〜z)で並べ替えて漢字の中でも「本店」を最上位とできませんかね?

降順だと上記並びなのですが、かな(ん→あ)、アルファベット(z→a)になります。
Custumorder に「本店」を入力すると漢字中で1番下になります。

よろしくお願いします
2019/06/26(水) 20:26:59.08ID:JKpFRzRw
>>900
本店の前にスペース入れる
2019/06/26(水) 21:08:13.27ID:pdVAutd4
>>901
ありがとうございます。
やってみます。
2019/07/04(木) 12:19:45.93ID:Siuy47lc
Wordの表で、
ActiveDocument.Tables(2).Select
みたいに選択したいのですが、どれだけ表を分割しても、
全ての表が  Tables(1) という扱いなようでエラーになります。
ひとつ前に似たようなものを組んだ時には問題なくTables(2)になりましたが、
それと構文上は全く違いはありません。
どうしたら Tables(2)という扱いになるのでしょうか。
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
2019/07/05(金) 02:42:43.50ID:grV1bh4s
取得するのが D:/画像一覧/*jpeg*.jpeg になってるとか
fName は iName の間違いじゃないのかとか
myList は String なのにSplitした後のものを代入してるとか
2019/07/06(土) 12:30:25.64ID:z73aGQye
>>905
返信遅れて大変申し訳ありません
3つのご指摘直して反映できました。
ありがとうございました。
2019/07/25(木) 16:22:05.73ID:eKMV/4VB
ExcelVBAのユーザーフォーム上で、PDFを表示、操作をしたいです。
ですが、ユーザーフォームにコントロールを追加しようとすると、
「要素が見つかりません」とダイアログが表示され出来ません。
どなたか解決策をご存じの方がいましたら、教えていただけますでしょうか。。

Acrobat pro DCはインストールしてあり、ExcelはOffice365を最新の状態で使用してます。
2019/07/25(木) 18:51:11.10ID:HFVXfXT2
>>907
EXCELは専用スレがあるので、そちらへどうぞ
2019/07/26(金) 10:59:16.22ID:nW8IFIW6
>>908
ありがとうございます。
そちらに書いてみます。
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

よろしくお願いします。
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
912デフォルトの名無しさん
垢版 |
2019/08/14(水) 19:27:35.96ID:uFuQVnLY
他にExecを使う方法もある
2019/08/14(水) 20:05:03.77ID:6C5bzX4k
vbDefaultButton1 とか、そういうのじゃなくて?
2019/08/15(木) 00:01:28.86ID:GUoAoBO9
>>911
ありがとうございます!
試してみます!

>>913
すみません、vbDefaultButton1 がわかりません
2019/08/16(金) 11:35:25.09ID:vco+QnrA
>>911
>910,>914です。
教えていただいたコードを試してみたのですが、
‘何か処理を書く
のところに
MsgBox hoge
と入れたのですが、「はい」「いいえ」どちらの場合も 0 が返されます。
どうしたらいいでしょうか
2019/08/16(金) 13:41:00.72ID:2LlAcZB1
???
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/
918デフォルトの名無しさん
垢版 |
2019/08/16(金) 14:13:30.60ID:WTD6eyC3
>>915
【WSHPopUP.vbs】 のWSHObj.Quit fuga は間違い。エラー出してる。
Wscript.Quit fuga が正しい
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の戻り値を取得
に変更し、成功しました。

たいへん助かりました。
ありがとうございました。
2019/09/25(水) 10:50:56.65ID:L8CrQHgr
WordのアクティブXコントロールのテキストボックスなのですが
BackStyleを0設定すると背景色は消えるのですが
デザインモードを解除すると背景色が出てしまいます

これはバグでしょうか
921デフォルトの名無しさん
垢版 |
2019/11/05(火) 18:33:26.09ID:CrKvYzfV
DataObjectオブジェクトについて https://chiebukuro.yahoo.co.jp/

VSI
922デフォルトの名無しさん
垢版 |
2019/11/05(火) 18:35:53.47ID:CrKvYzfV
DataObjectオブジェクトについて https://chiebukuro.yahoo.co.jp/

FQB
923デフォルトの名無しさん
垢版 |
2019/11/06(水) 06:26:58.33ID:jiZZUv+M
CInt 関数 VBA http://vba-auto.com/cint_function_vba/

NQ2
レス数が900を超えています。1000を超えると表示できなくなるよ。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。