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
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2015/05/21(木) 10:52:44.71ID:KLv0vQmm779デフォルトの名無しさん
2019/03/24(日) 13:55:48.62ID:gDjNFFGJ >>778
無能管理職かよ
無能管理職かよ
780デフォルトの名無しさん
2019/03/24(日) 14:55:03.02ID:gZMjxNOF781デフォルトの名無しさん
2019/03/24(日) 17:00:18.75ID:cASdygc2 >>776
これ、1つずつ待つ部分がVBAでマルチにしたいって話だったけどCreateObjectで既に別プロセスだから全部投げてから全部の完了を待つので正解なんだよな。
勘違いしてマルチプロセスでやろうとしちゃったよ。
ついでにApplication.Runで出来なくて、迷ってたんだけど、またまた勘違いでApplication.OnTimeが正解だった。
でもOnTimeって戻り値が取れないんだよな。
これ、1つずつ待つ部分がVBAでマルチにしたいって話だったけどCreateObjectで既に別プロセスだから全部投げてから全部の完了を待つので正解なんだよな。
勘違いしてマルチプロセスでやろうとしちゃったよ。
ついでにApplication.Runで出来なくて、迷ってたんだけど、またまた勘違いでApplication.OnTimeが正解だった。
でもOnTimeって戻り値が取れないんだよな。
782デフォルトの名無しさん
2019/03/24(日) 17:02:38.91ID:cASdygc2 あと、ExcelVBAスレにあるようにInternetExplorer.Applicationじゃなくて別のオブジェクトの方が早いと思うよ。
783デフォルトの名無しさん
2019/03/24(日) 17:15:34.95ID:3PVCt58k 講釈垂れはいいからコードはよ
784デフォルトの名無しさん
2019/03/24(日) 17:48:52.18ID:yrUzMInJ とりあえずDoEvents。
785デフォルトの名無しさん
2019/03/24(日) 21:00:07.33ID:IVIO7oct 取りあえず書いてみたんだが、1つずつ待っても速度が変わらん。
テスト用に繋げた所があんまり時間が掛からん所でReadyStateのループに入らんのよ。
取りあえずInternetExplorer.Applicationはやっぱり遅かった。
59個のURLから同じ場所にある特定のデータを取ってくる処理でMSXML2.XMLHttpなら5秒のところIEだと60秒くらい掛かった。
テスト用に繋げた所があんまり時間が掛からん所でReadyStateのループに入らんのよ。
取りあえずInternetExplorer.Applicationはやっぱり遅かった。
59個のURLから同じ場所にある特定のデータを取ってくる処理でMSXML2.XMLHttpなら5秒のところIEだと60秒くらい掛かった。
786デフォルトの名無しさん
2019/03/24(日) 23:42:52.24ID:Y3S3b5Ai IEを普通にUIを持ったアプリケーションとして開けば、クッキーや画面のレンダリングからアクセス履歴の更新やキャッシュの整理までいろんな処理が走るから、そりゃ実質GETだけのXMLHTTPと比べたら遅くなるのは当たり前と言うか
>>785
画像検索にそれぞれ違うキーワードを設定すれば、それなりに時間がかかるようになるから負荷のテストにはおすすめ
>>785
画像検索にそれぞれ違うキーワードを設定すれば、それなりに時間がかかるようになるから負荷のテストにはおすすめ
787デフォルトの名無しさん
2019/03/25(月) 08:15:58.30ID:O3TyiYmg788デフォルトの名無しさん
2019/03/25(月) 21:50:57.49ID:D+uIa6Au 真のエクセラーならieなんか使わずにwebクエリーとか使って何とかするべきだろうが
789デフォルトの名無しさん
2019/03/25(月) 23:08:06.35ID:DuFQaNpH getElementByもWebクエリも使ったことあるけど、
Webクエリはどうやって取ってきてるのか謎。
Webクエリはどうやって取ってきてるのか謎。
790デフォルトの名無しさん
2019/03/25(月) 23:19:23.02ID:XpTM98r8 レンダリングしないでペイロードのパースだけやってるんでしょ
791デフォルトの名無しさん
2019/03/26(火) 00:39:52.05ID:ke9zWH00 誰もSelenium basic使わんの?
IE使わなくていいしセッション維持とかも楽だぉ?
IE使わなくていいしセッション維持とかも楽だぉ?
792デフォルトの名無しさん
2019/03/26(火) 18:58:02.34ID:ADoE3fhW readystateが信用ならんのがな
completeになっても完全に読み込めてなくてその後の要素取得処理に失敗とか高確率で起こるし
WinHTTP使うのが確実だと思う
completeになっても完全に読み込めてなくてその後の要素取得処理に失敗とか高確率で起こるし
WinHTTP使うのが確実だと思う
793デフォルトの名無しさん
2019/03/26(火) 22:23:16.17ID:0P7j5sat794デフォルトの名無しさん
2019/03/26(火) 23:48:15.28ID:KxwbGcFA 結局Do LoopとOn Error Resume Nextで逃げるしかないっていう。
795デフォルトの名無しさん
2019/03/27(水) 00:00:47.48ID:sk2gWEk1 >>794
x 結局Do LoopとOn Error Resume Nextで逃げるしかないっていう。
o 結局Do LoopとOn Error Resume Nextで逃げるしかないっていうことですね。
正しい日本語を使いたまえ
x 結局Do LoopとOn Error Resume Nextで逃げるしかないっていう。
o 結局Do LoopとOn Error Resume Nextで逃げるしかないっていうことですね。
正しい日本語を使いたまえ
796デフォルトの名無しさん
2019/03/27(水) 00:54:24.99ID:bUJXWn5A 口語体が理解できないやつが正しい日本語とか
797デフォルトの名無しさん
2019/03/27(水) 06:30:58.48ID:61Xepw/0 アスペかしら…
798デフォルトの名無しさん
2019/03/27(水) 07:39:47.73ID:qB5RyyD6 では、教えてくれ。
正しい日本語の"正しい"とはなんのことだ。
先に言っておくが、国語辞典や義務教育は関係ないぞ。
正しい日本語の"正しい"とはなんのことだ。
先に言っておくが、国語辞典や義務教育は関係ないぞ。
799デフォルトの名無しさん
2019/03/27(水) 08:38:29.06ID:oJzskUWb >>798
お前のようなノイズではないこと
お前のようなノイズではないこと
800デフォルトの名無しさん
2019/03/27(水) 12:48:07.16ID:Mdwmg5PN >>798
国語辞典や義務教育関係ないと言うのならば口語体でも問題ないと思うが…。
例えば力不足、役不足のように意味を間違えて使っていては当然正しい日本語ではないが、今回の様な場合では相手方に伝われば良いということにならないか。
国語辞典や義務教育関係ないと言うのならば口語体でも問題ないと思うが…。
例えば力不足、役不足のように意味を間違えて使っていては当然正しい日本語ではないが、今回の様な場合では相手方に伝われば良いということにならないか。
801デフォルトの名無しさん
2019/03/28(木) 20:50:35.86ID:GAoTTZZk 関西弁は正しい日本語ではない
802デフォルトの名無しさん
2019/03/28(木) 20:59:08.44ID:M/yCVQ4H 正しい日本語とは
803デフォルトの名無しさん
2019/03/28(木) 21:53:50.06ID:cIkPDI6N804デフォルトの名無しさん
2019/03/28(木) 23:24:25.12ID:Q+Q3MpKo 長いのでWithするかSetしましょう。
With 口語体が理解できないやつが正しい日本語
とか = ×
とかどういうこと? = 〇
End With
With 口語体が理解できないやつが正しい日本語
とか = ×
とかどういうこと? = 〇
End With
805デフォルトの名無しさん
2019/03/28(木) 23:39:02.51ID:cIkPDI6N Sub CorrectJapanese()
Dim text As String
Dim inputText As String
text = "口語体が理解できないやつが正しい日本語とか"
inputText = InputBox("あなたの日本語は?")
If inputText = text Then
MsgBox "アホ"
ElseIf inputText = text & "どういうこと?" Then
MsgBox "そのとおり"
End If
End Sub
Dim text As String
Dim inputText As String
text = "口語体が理解できないやつが正しい日本語とか"
inputText = InputBox("あなたの日本語は?")
If inputText = text Then
MsgBox "アホ"
ElseIf inputText = text & "どういうこと?" Then
MsgBox "そのとおり"
End If
End Sub
806デフォルトの名無しさん
2019/03/28(木) 23:57:12.09ID:OmRArJOr 日付フィルターを使うときにCriteriaに設定する値って、必ず一旦Double型に型変換したDate型データをもとにしてFormat変換しなきゃいけないのかな?
Date関数の戻り値をそのままFormat変換してもうまくフィルターがかからなくて危うくハマりかけたんだが、後学のために識者がいたら教えてほしい
Date関数の戻り値をそのままFormat変換してもうまくフィルターがかからなくて危うくハマりかけたんだが、後学のために識者がいたら教えてほしい
807デフォルトの名無しさん
2019/03/29(金) 00:17:35.48ID:PdUuDb+g まともなレスには異論返せないのな
808デフォルトの名無しさん
2019/03/29(金) 00:47:46.11ID:MmeaYZo8809デフォルトの名無しさん
2019/03/29(金) 06:46:41.33ID:YUbMxDIL >>804
ピリオド抜けてる
ピリオド抜けてる
810デフォルトの名無しさん
2019/03/29(金) 12:23:42.03ID:Fu/JMZl+ 異論返せていないまともなレスとはどれ
811デフォルトの名無しさん
2019/03/29(金) 12:35:07.47ID:7DnII+1F812デフォルトの名無しさん
2019/03/29(金) 12:37:39.38ID:FHKNInbw どうでも良いことで延々と論じるのは如何なものか。
813デフォルトの名無しさん
2019/03/29(金) 18:52:59.03ID:DRFZR9Lo >>809
シンタックスエラーになります
シンタックスエラーになります
814デフォルトの名無しさん
2019/03/30(土) 09:25:26.20ID:Fw0ogXHz VBAで実行時にシンタックスエラーが出るのはどういう場合だろう
デフォルト設定だと1行入力ごとに構文解析するし
デフォルト設定だと1行入力ごとに構文解析するし
815デフォルトの名無しさん
2019/03/30(土) 09:27:30.74ID:uS2atdcl816デフォルトの名無しさん
2019/03/30(土) 09:28:29.64ID:uS2atdcl ああすまん。これってシンタックスエラーではないんだっけ
でもエラーになるよね
でもエラーになるよね
817デフォルトの名無しさん
2019/03/30(土) 09:41:55.36ID:Fw0ogXHz Nextを書かなかった場合は
「コンパイル エラー:For に対応する Next がありません。」
だった
もしシンタックスエラーのエラーコード(変数Errの値)が存在すれば出る可能性があるってことだと思うけど、コードの一覧てどこにあるんだ?
検索してVBのは出るけどVBAのが見つからん
「コンパイル エラー:For に対応する Next がありません。」
だった
もしシンタックスエラーのエラーコード(変数Errの値)が存在すれば出る可能性があるってことだと思うけど、コードの一覧てどこにあるんだ?
検索してVBのは出るけどVBAのが見つからん
818デフォルトの名無しさん
2019/03/30(土) 09:49:53.73ID:uS2atdcl シンタックスって言葉自体は構文規則だけど、コンパイルエラーって出るんだね
819デフォルトの名無しさん
2019/04/06(土) 00:50:26.14ID:ocPEvB9Z ExcelVBAでListViewを参照設定で追加して
フォームに配置して使っているんですが、
別フォームからshowしてすでに項目をいくつか追加してある
ListViewのあるフォームを表示したときに
ListViewをアクティブ(そのままの状態から矢印キーで項目を選択できるようにする)
にすることは可能ですが?
例えば
Public Sub UserForm_Active()
With listview1
.ListItems(1).Select
.SetFocus
End With
End Sub
とした場合に、フォーカスは確かにListView1にあるのですが、
その状態では項目が矢印キーの上下で選択することができません。
ListView1.SetFocusではListView1全体にフォーカスはあるが
肝心の中身の項目にはフォーカスがない状態ということなのでしょうか?
なにかよい方法はありますでしょうか?
フォームに配置して使っているんですが、
別フォームからshowしてすでに項目をいくつか追加してある
ListViewのあるフォームを表示したときに
ListViewをアクティブ(そのままの状態から矢印キーで項目を選択できるようにする)
にすることは可能ですが?
例えば
Public Sub UserForm_Active()
With listview1
.ListItems(1).Select
.SetFocus
End With
End Sub
とした場合に、フォーカスは確かにListView1にあるのですが、
その状態では項目が矢印キーの上下で選択することができません。
ListView1.SetFocusではListView1全体にフォーカスはあるが
肝心の中身の項目にはフォーカスがない状態ということなのでしょうか?
なにかよい方法はありますでしょうか?
820デフォルトの名無しさん
2019/04/07(日) 19:10:32.15ID:nvpN9j7Q sendkeysで Alt↓までやっちゃうとか
あまりおすすめできる方法ではないが
あまりおすすめできる方法ではないが
821デフォルトの名無しさん
2019/04/21(日) 00:26:59.66ID:WKly27nG このスレは生きてますか
822デフォルトの名無しさん
2019/04/21(日) 17:39:05.84ID:VJZKP3mE 一応生きてるでしょ。
823デフォルトの名無しさん
2019/05/10(金) 13:15:01.20ID:SsAAf7AE VBA勉強中のものです。
Setステートメントを勉強しているのですが、オブジェクト型についてお聞きしたいです。RangeオブジェクトとかWorksheetオブジェクトなど、いろんなサイトなど見ても使いどころがよくつかめてないです。
どんなときに使うのか、教えてもらえるとありがたいです。
Setステートメントを勉強しているのですが、オブジェクト型についてお聞きしたいです。RangeオブジェクトとかWorksheetオブジェクトなど、いろんなサイトなど見ても使いどころがよくつかめてないです。
どんなときに使うのか、教えてもらえるとありがたいです。
824デフォルトの名無しさん
2019/05/10(金) 16:53:41.17ID:SsAAf7AE Excel VBA 質問スレで質問してみます。お邪魔しました m( _ _ )m
825デフォルトの名無しさん
2019/05/12(日) 02:32:02.86ID:0u/cIV/f >>823
オブジェクトなら同じものを頻繁に扱うときにコーディングミスをしにくくなる。
毎回、名前でアクセスしていると、ちょっとしたことで、別のものを間違って扱う可能性が高まって、実行時エラーを発生させやすくなる。
定数化していれば防げるが、定数のスコープを大きくしないといけないので、定数の値を変えるときにあっちこっちを確認しながら、直すことになり面倒なことになりやすい。
オブジェクトなら同じものを頻繁に扱うときにコーディングミスをしにくくなる。
毎回、名前でアクセスしていると、ちょっとしたことで、別のものを間違って扱う可能性が高まって、実行時エラーを発生させやすくなる。
定数化していれば防げるが、定数のスコープを大きくしないといけないので、定数の値を変えるときにあっちこっちを確認しながら、直すことになり面倒なことになりやすい。
826デフォルトの名無しさん
2019/05/13(月) 13:34:22.56ID:p6Zrf1zY object型の初期状態はNothing
参照先が存在しない場合もNothing返るのがあってis式で判定できる
一方でvariantの初期状態はemptyなのでis式がエラーになる
参照先が存在しない場合もNothing返るのがあってis式で判定できる
一方でvariantの初期状態はemptyなのでis式がエラーになる
827デフォルトの名無しさん
2019/05/13(月) 18:12:50.85ID:/95lNMvT オブジェクトの値がNothingかどうかで判断するロジックはセンスがいいとは思えない。
828デフォルトの名無しさん
2019/05/13(月) 22:51:51.62ID:RqskJpsp Typenameとか列挙定数とかポインタ関数の値で判定するのが良いわな
829デフォルトの名無しさん
2019/05/13(月) 23:46:53.76ID:4/CDP/BQ 自分で変数の値をコントロールしているのに、Nothingかどうかをあちこちで確認しているクソプログラマと1年前に仕事した。
830デフォルトの名無しさん
2019/05/14(火) 08:31:35.00ID:BLcva127831デフォルトの名無しさん
2019/05/14(火) 11:18:55.94ID:4FRIObo4 >>830
そのライブラリは他人が作ったものなのか?自分が作ったものなのか?
そのライブラリは他人が作ったものなのか?自分が作ったものなのか?
832デフォルトの名無しさん
2019/05/14(火) 11:29:20.25ID:5X9vxJLP 判定すべきものが、誰が作ったかによって変わる?
833デフォルトの名無しさん
2019/05/14(火) 12:37:11.77ID:W+bs/bzK ライブラリに状態を持つプロパティがあればいい。
他人が作ったものを使うしかなく、オブジェクトがNothingかどうかでしか判断できないのなら、そうするしかない。
他人が作ったものを使うしかなく、オブジェクトがNothingかどうかでしか判断できないのなら、そうするしかない。
834デフォルトの名無しさん
2019/05/14(火) 13:35:55.15ID:UTGAJPws >>833
ライブラリ関数が引数として受け取ったオブジェクトをどうNullチェックするかの話だぞ?
ライブラリ関数が引数として受け取ったオブジェクトをどうNullチェックするかの話だぞ?
835デフォルトの名無しさん
2019/05/14(火) 16:16:33.74ID:E8REZJpG いきなりライブラリと言われても何のことやらわからない。
836デフォルトの名無しさん
2019/05/14(火) 17:30:53.68ID:UTGAJPws837デフォルトの名無しさん
2019/05/14(火) 21:45:48.80ID:s0Vi/y5R 普通にエラーでブレイクすればいいじゃん
838デフォルトの名無しさん
2019/05/14(火) 22:22:18.25ID:jcYCvcdA839デフォルトの名無しさん
2019/05/14(火) 23:23:54.78ID:+OBjJPst >>836
世の中、変なやつがいて、オブジェクト変数に値をセットして、何も変わるはずがないのに、直後にオブジェクト変数の値がNothingかどうか判定するコードを書くやつがいる。
世の中、変なやつがいて、オブジェクト変数に値をセットして、何も変わるはずがないのに、直後にオブジェクト変数の値がNothingかどうか判定するコードを書くやつがいる。
840デフォルトの名無しさん
2019/05/14(火) 23:30:59.65ID:KmX6ljlC 代入が成功したかどうか確認するテクニックも存在するから、そういう分野からの転職かな?
具体的には、コンパイラの型チェックを使った裏技だったり、ハードウェアの故障チェックなんかで使われる
具体的には、コンパイラの型チェックを使った裏技だったり、ハードウェアの故障チェックなんかで使われる
841デフォルトの名無しさん
2019/05/15(水) 00:37:47.48ID:yOOg6UjC 直後であってもサブルーチンに分かれてるなら
入力情報のチェックを行うのは普通のこと
入力情報のチェックを行うのは普通のこと
842デフォルトの名無しさん
2019/05/15(水) 02:24:21.58ID:MwugOkQt なんか例のCプログラマがしつこいけど、いまどき関係ない別プロセスがメモリ上の値を書き換えたりするミスは、OSレベルでもCPUレベルでもあるので、持論を批判されていると思って反論しなくていいよ。
ここは漠然としたVBAのスレッドだから、見ているひとにはあなたの言うことは難しくて理解できないと思うよ。
スルー力がないのか、寂しくてかまってほしいのか知らないけど、要はクソコードを書くなと言ってるだけだ。
ここは漠然としたVBAのスレッドだから、見ているひとにはあなたの言うことは難しくて理解できないと思うよ。
スルー力がないのか、寂しくてかまってほしいのか知らないけど、要はクソコードを書くなと言ってるだけだ。
843デフォルトの名無しさん
2019/05/15(水) 02:28:07.88ID:MwugOkQt なんでVBAスレで組み込み系のショボいハードウェアでのプログラミングを語っているのか?
ハードウェア、OS、ミドルウェア、プログラミング言語によって考え方やどこまで想定するのかは全然、違うからいっしょくたにしないでもらいたい。
ハードウェア、OS、ミドルウェア、プログラミング言語によって考え方やどこまで想定するのかは全然、違うからいっしょくたにしないでもらいたい。
844デフォルトの名無しさん
2019/05/15(水) 02:29:01.28ID:O3OiMSIx 一般ユーザー権限のアプリで別プロセスのメモリにアクセスできたのは、平成どころか昭和時代の話ですよ、おじいちゃん
希にOSやCPUのバグ騒ぎが起きますが、そんなのは例外中の例外なんで普通は気にしなくていいことです
希にOSやCPUのバグ騒ぎが起きますが、そんなのは例外中の例外なんで普通は気にしなくていいことです
845デフォルトの名無しさん
2019/05/15(水) 02:37:35.16ID:MwugOkQt Windows 95、98、98SE、MeがいつのOSかもわからないのか
846デフォルトの名無しさん
2019/05/15(水) 05:12:46.46ID:TahQLJDH そこまでわかってるのに、タチの悪いやつだな
847デフォルトの名無しさん
2019/05/15(水) 16:00:34.96ID:D3RbfE7K イベント用インスタンスはPublicでやるの?
848デフォルトの名無しさん
2019/05/15(水) 20:12:16.23ID:XVltvZnu せっかくのイベントなのにPrivateにしたら星飛雄馬のクリスマスパーティーみたいになるじゃん
849デフォルトの名無しさん
2019/05/15(水) 20:14:51.37ID:RIeke8Yt >>848
座蒲団3枚あげる
座蒲団3枚あげる
850デフォルトの名無しさん
2019/05/15(水) 20:49:39.00ID:WHH9UP0v 何か面白いこと言った?
全然わからない。
興味あるからなぜ面白いか教えて?
全然わからない。
興味あるからなぜ面白いか教えて?
851デフォルトの名無しさん
2019/05/16(木) 02:08:04.88ID:Ab5DOH6n852デフォルトの名無しさん
2019/05/16(木) 14:30:12.55ID:wWtnEH3A コード書く画面を
背景は黒に、文字は白に、する方法を教えれ
背景は黒に、文字は白に、する方法を教えれ
853デフォルトの名無しさん
2019/05/16(木) 17:24:09.37ID:EX4VaMcQ >>852
ダークテーマと天に向かって3回唱える
ダークテーマと天に向かって3回唱える
854デフォルトの名無しさん
2019/05/16(木) 17:37:55.97ID:wWtnEH3A855デフォルトの名無しさん
2019/05/23(木) 22:41:23.89ID:ufKYoT27 Wordで文字置換をしたいのですが、特定のフォントの文字列を検索して、文字列は変えずにフォントだけ変えたいです。半角を全角にしたいのですが可能でしょうか。ヒントだけでも教えていただけると有り難いです。
856デフォルトの名無しさん
2019/05/23(木) 23:01:54.16ID:ubNtK04k >>855
できる
任意のRangeのCharactersのフォントを一字ずつ調べて、探しているフォントが適用されている文字が見つかったらその文字のフォントを修正すればいい
半角から全角に変換するにはStrConv関数を使用し、第2引数conversionには列挙定数のvbWideを指定する
できる
任意のRangeのCharactersのフォントを一字ずつ調べて、探しているフォントが適用されている文字が見つかったらその文字のフォントを修正すればいい
半角から全角に変換するにはStrConv関数を使用し、第2引数conversionには列挙定数のvbWideを指定する
857デフォルトの名無しさん
2019/05/23(木) 23:16:33.41ID:fmz+6NIG wordの標準機能で半角全角変換あったような
858デフォルトの名無しさん
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はナンセンス、はっきりわかんだね
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【インバウンド】中国からの“渡航自粛”…ツアー1000人分の直前キャンセル「キャンセル料は免除してくれ」 ことしいっぱいキャンセルに [1ゲットロボ★]
- 【芸能】日中関係悪化でエンタメ業界に大ダメージ… JO1の中国でのイベント中止、邦画は公開延期、STARTOアイドルへの影響も [冬月記者★]
- 「国民の憤りを引き起こした」中国側“高市首相発言の撤回改めて要求” [どどん★]
- XやChatGPTで広範囲の通信障害 投稿や閲覧できず [蚤の市★]
- 【サッカー】日本代表、ボリビアに3発快勝 森保監督通算100試合目を飾る…鎌田、町野、中村がゴール [久太郎★]
- 【ローソン】ロゴの「L」で誤解生んだコーヒーカップ、デザイン変更へ 在庫使い切る3か月後にリニューアル [ぐれ★]
- パラドゲーやってる人に聞きたい総理の発言がそのまま国家意思になるって中世かよ [279479878]
- 【高市早苗】バス会社、中国からのキャンセルで12月で2000万円~3000万円の損失へ [115996789]
- 米シンクタンク「アメリカは台湾問題で"あいまい戦略"を取っている。高市早苗はこの方針から逸脱している」 [603416639]
- かしこいワンコっていうVtuberの子知ってる?
- 岡田克也「軽々しく存立危機事態とか言うべきじゃない」高市早苗「台湾で武力攻撃が発生したらどう考えても日本の存立危機事態」 [931948549]
- 俺が「う~寒い寒い」って言いながらお前らが寝てるお布団に潜り込んだら…
