1 名前:デフォルトの名無しさん [2015/05/21(木) 10:52:44.71 ID:KLv0vQmm.net] VBAを使った質問ならなんでもござれ 本来の対象であるオフィスアプリを操作する以外の話もOK ゲーム作り、Webアクセス、外部アプリの操作 COM(ActiveX)、Win32API、.NET Framework、DirectXなどなど VBAで実行するものであればなんでも質問してください VBAを開発環境としていろいろ作っちゃいましょう 前スレ VBAなんでも質問スレ peace.2ch.net/test/read.cgi/tech/1342087380/ 関連スレ Excel VBA 質問スレ Part36 [転載禁止]©2ch.net peace.2ch.net/test/read.cgi/tech/1419718732/ Access VBA 質問スレ Part1 peace.2ch.net/test/read.cgi/tech/1328536426/ VBプログラマ質問スレ(Ver.6.0 まで) part64 peace.2ch.net/test/read.cgi/tech/1393069842/ Excel総合相談所 118 [転載禁止]©2ch.net peace.2ch.net/test/read.cgi/bsoft/1430352555/
809 名前:デフォルトの名無しさん mailto:sage [2019/03/26(火) 00:39:52.05 ID:ke9zWH00.net] 誰もSelenium basic使わんの? IE使わなくていいしセッション維持とかも楽だぉ?
810 名前:デフォルトの名無しさん mailto:sage [2019/03/26(火) 18:58:02.34 ID:ADoE3fhW.net] readystateが信用ならんのがな completeになっても完全に読み込めてなくてその後の要素取得処理に失敗とか高確率で起こるし WinHTTP使うのが確実だと思う
811 名前:デフォルトの名無しさん [2019/03/26(火) 22:23:16.17 ID:0P7j5sat.net] >>791 x だぉ o だよ 正しい日本語を使いたまえ
812 名前:デフォルトの名無しさん mailto:sage [2019/03/26(火) 23:48:15.28 ID:KxwbGcFA.net] 結局Do LoopとOn Error Resume Nextで逃げるしかないっていう。
813 名前:デフォルトの名無しさん [2019/03/27(水) 00:00:47.48 ID:sk2gWEk1.net] >>794 x 結局Do LoopとOn Error Resume Nextで逃げるしかないっていう。 o 結局Do LoopとOn Error Resume Nextで逃げるしかないっていうことですね。 正しい日本語を使いたまえ
814 名前:デフォルトの名無しさん mailto:sage [2019/03/27(水) 00:54:24.99 ID:bUJXWn5A.net] 口語体が理解できないやつが正しい日本語とか
815 名前:デフォルトの名無しさん mailto:sage [2019/03/27(水) 06:30:58.48 ID:61Xepw/0.net] アスペかしら…
816 名前:デフォルトの名無しさん mailto:sage [2019/03/27(水) 07:39:47.73 ID:qB5RyyD6.net] では、教えてくれ。 正しい日本語の"正しい"とはなんのことだ。 先に言っておくが、国語辞典や義務教育は関係ないぞ。
817 名前:デフォルトの名無しさん mailto:sage [2019/03/27(水) 08:38:29.06 ID:oJzskUWb.net] >>798 お前のようなノイズではないこと
818 名前:デフォルトの名無しさん mailto:sage [2019/03/27(水) 12:48:07.16 ID:Mdwmg5PN.net] >>798 国語辞典や義務教育関係ないと言うのならば口語体でも問題ないと思うが…。 例えば力不足、役不足のように意味を間違えて使っていては当然正しい日本語ではないが、今回の様な場合では相手方に伝われば良いということにならないか。
819 名前:デフォルトの名無しさん mailto:sage [2019/03/28(木) 20:50:35.86 ID:GAoTTZZk.net] 関西弁は正しい日本語ではない
820 名前:デフォルトの名無しさん mailto:sage [2019/03/28(木) 20:59:08.44 ID:M/yCVQ4H.net] 正しい日本語とは
821 名前:デフォルトの名無しさん [2019/03/28(木) 21:53:50.06 ID:cIkPDI6N.net] >>796 x 口語体が理解できないやつが正しい日本語とか o 口語体が理解できないやつが正しい日本語とかどういうこと?
822 名前:デフォルトの名無しさん mailto:sage [2019/03/28(木) 23:24:25.12 ID:Q+Q3MpKo.net] 長いのでWithするかSetしましょう。 With 口語体が理解できないやつが正しい日本語 とか = × とかどういうこと? = 〇 End With
823 名前:デフォルトの名無しさん [2019/03/28(木) 23:39:02.51 ID:cIkPDI6N.net] 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
824 名前:デフォルトの名無しさん mailto:sage [2019/03/28(木) 23:57:12.09 ID:OmRArJOr.net] 日付フィルターを使うときにCriteriaに設定する値って、必ず一旦Double型に型変換したDate型データをもとにしてFormat変換しなきゃいけないのかな? Date関数の戻り値をそのままFormat変換してもうまくフィルターがかからなくて危うくハマりかけたんだが、後学のために識者がいたら教えてほしい
825 名前:デフォルトの名無しさん mailto:sage [2019/03/29(金) 00:17:35.48 ID:PdUuDb+g.net] まともなレスには異論返せないのな
826 名前:デフォルトの名無しさん [2019/03/29(金) 00:47:46.11 ID:MmeaYZo8.net] >>807 x まともなレスには異論返せないのな o まともなレスには異論返せないのね
827 名前:デフォルトの名無しさん mailto:sage [2019/03/29(金) 06:46:41.33 ID:YUbMxDIL.net] >>804 ピリオド抜けてる
828 名前:デフォルトの名無しさん mailto:sage [2019/03/29(金) 12:23:42.03 ID:Fu/JMZl+.net] 異論返せていないまともなレスとはどれ
829 名前:デフォルトの名無しさん mailto:sage [2019/03/29(金) 12:35:07.47 ID:7DnII+1F.net] >>810 この辺りじゃないか? >>799 >>800
830 名前:デフォルトの名無しさん mailto:sage [2019/03/29(金) 12:37:39.38 ID:FHKNInbw.net] どうでも良いことで延々と論じるのは如何なものか。
831 名前:デフォルトの名無しさん mailto:sage [2019/03/29(金) 18:52:59.03 ID:DRFZR9Lo.net] >>809 シンタックスエラーになります
832 名前:デフォルトの名無しさん mailto:sage [2019/03/30(土) 09:25:26.20 ID:Fw0ogXHz.net] VBAで実行時にシンタックスエラーが出るのはどういう場合だろう デフォルト設定だと1行入力ごとに構文解析するし
833 名前:デフォルトの名無しさん mailto:sage [2019/03/30(土) 09:27:30.74 ID:uS2atdcl.net] >>814 それ、1行ごとの構文解析だろ For Next Do Loop If End If のチェックまではしてないと思うぞ
834 名前:デフォルトの名無しさん mailto:sage [2019/03/30(土) 09:28:29.64 ID:uS2atdcl.net] ああすまん。これってシンタックスエラーではないんだっけ でもエラーになるよね
835 名前:デフォルトの名無しさん mailto:sage [2019/03/30(土) 09:41:55.36 ID:Fw0ogXHz.net] Nextを書かなかった場合は 「コンパイル エラー:For に対応する Next がありません。」 だった もしシンタックスエラーのエラーコード(変数Errの値)が存在すれば出る可能性があるってことだと思うけど、コードの一覧てどこにあるんだ? 検索してVBのは出るけどVBAのが見つからん
836 名前:デフォルトの名無しさん mailto:sage [2019/03/30(土) 09:49:53.73 ID:uS2atdcl.net] シンタックスって言葉自体は構文規則だけど、コンパイルエラーって出るんだね
837 名前:デフォルトの名無しさん [2019/04/06(土) 00:50:26.14 ID:ocPEvB9Z.net] ExcelVBAでListViewを参照設定で追加して フォームに配置して使っているんですが、 別フォームからshowしてすでに項目をいくつか追加してある ListViewのあるフォームを表示したときに ListViewをアクティブ(そのままの状態から矢印キーで項目を選択できるようにする) にすることは可能ですが? 例えば Public Sub UserForm_Active() With listview1 .ListItems(1).Select .SetFocus End With End Sub とした場合に、フォーカスは確かにListView1にあるのですが、 その状態では項目が矢印キーの上下で選択することができません。 ListView1.SetFocusではListView1全体にフォーカスはあるが 肝心の中身の項目にはフォーカスがない状態ということなのでしょうか? なにかよい方法はありますでしょうか?
838 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 19:10:32.15 ID:nvpN9j7Q.net] sendkeysで Alt↓までやっちゃうとか あまりおすすめできる方法ではないが
839 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 00:26:59.66 ID:WKly27nG.net] このスレは生きてますか
840 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 17:39:05.84 ID:VJZKP3mE.net] 一応生きてるでしょ。
841 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 13:15:01.20 ID:SsAAf7AE.net] VBA勉強中のものです。 Setステートメントを勉強しているのですが、オブジェクト型についてお聞きしたいです。RangeオブジェクトとかWorksheetオブジェクトなど、いろんなサイトなど見ても使いどころがよくつかめてないです。 どんなときに使うのか、教えてもらえるとありがたいです。
842 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 16:53:41.17 ID:SsAAf7AE.net] Excel VBA 質問スレで質問してみます。お邪魔しました m( _ _ )m
843 名前:デフォルトの名無しさん [2019/05/12(日) 02:32:02.86 ID:0u/cIV/f.net] >>823 オブジェクトなら同じものを頻繁に扱うときにコーディングミスをしにくくなる。 毎回、名前でアクセスしていると、ちょっとしたことで、別のものを間違って扱う可能性が高まって、実行時エラーを発生させやすくなる。 定数化していれば防げるが、定数のスコープを大きくしないといけないので、定数の値を変えるときにあっちこっちを確認しながら、直すことになり面倒なことになりやすい。
844 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 13:34:22.56 ID:p6Zrf1zY.net] object型の初期状態はNothing 参照先が存在しない場合もNothing返るのがあってis式で判定できる 一方でvariantの初期状態はemptyなのでis式がエラーになる
845 名前:デフォルトの名無しさん [2019/05/13(月) 18:12:50.85 ID:/95lNMvT.net] オブジェクトの値がNothingかどうかで判断するロジックはセンスがいいとは思えない。
846 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 22:51:51.62 ID:RqskJpsp.net] Typenameとか列挙定数とかポインタ関数の値で判定するのが良いわな
847 名前:デフォルトの名無しさん [2019/05/13(月) 23:46:53.76 ID:4/CDP/BQ.net] 自分で変数の値をコントロールしているのに、Nothingかどうかをあちこちで確認しているクソプログラマと1年前に仕事した。
848 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 08:31:35.00 ID:BLcva127.net] >>827 ライブラリ側は何で判定すべきなんだ? それともNothingを渡されたら挙動は未定義とするとか?
849 名前:デフォルトの名無しさん [2019/05/14(火) 11:18:55.94 ID:4FRIObo4.net] >>830 そのライブラリは他人が作ったものなのか?自分が作ったものなのか?
850 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 11:29:20.25 ID:5X9vxJLP.net] 判定すべきものが、誰が作ったかによって変わる?
851 名前:デフォルトの名無しさん [2019/05/14(火) 12:37:11.77 ID:W+bs/bzK.net] ライブラリに状態を持つプロパティがあればいい。 他人が作ったものを使うしかなく、オブジェクトがNothingかどうかでしか判断できないのなら、そうするしかない。
852 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 13:35:55.15 ID:UTGAJPws.net] >>833 ライブラリ関数が引数として受け取ったオブジェクトをどうNullチェックするかの話だぞ?
853 名前:デフォルトの名無しさん [2019/05/14(火) 16:16:33.74 ID:E8REZJpG.net] いきなりライブラリと言われても何のことやらわからない。
854 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 17:30:53.68 ID:UTGAJPws.net] >>835 >>827 が「オブジェクトの値がNothingかどうかで判断するロジック」って言ってるじゃん。 ある関数がオブジェクトを受け取ったときの判断方法の話だと思うんだけど、 自分はライブラリ作者なのでその場合どうするのがいいのか気になった。
855 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 21:45:48.80 ID:s0Vi/y5R.net] 普通にエラーでブレイクすればいいじゃん
856 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 22:22:18.25 ID:jcYCvcdA.net] >>837 エラーとは限らないけど変数の状態に応じて処理を分けたいと言うのはある。 空のオブジェクトに対してはまた空を返すとかね。 >>829 の言ってることはわかるんだけど、>>827 と>>828 の主張がわからん。 Nothing判定はシンプルだけどTypeNameやenumだともっと分岐のパターンが増えちゃうじゃん。
857 名前:デフォルトの名無しさん [2019/05/14(火) 23:23:54.78 ID:+OBjJPst.net] >>836 世の中、変なやつがいて、オブジェクト変数に値をセットして、何も変わるはずがないのに、直後にオブジェクト変数の値がNothingかどうか判定するコードを書くやつがいる。
858 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 23:30:59.65 ID:KmX6ljlC.net] 代入が成功したかどうか確認するテクニックも存在するから、そういう分野からの転職かな? 具体的には、コンパイラの型チェックを使った裏技だったり、ハードウェアの故障チェックなんかで使われる
859 名前:デフォルトの名無しさん mailto:sage [2019/05/15(水) 00:37:47.48 ID:yOOg6UjC.net] 直後であってもサブルーチンに分かれてるなら 入力情報のチェックを行うのは普通のこと
860 名前:デフォルトの名無しさん [2019/05/15(水) 02:24:21.58 ID:MwugOkQt.net] なんか例のCプログラマがしつこいけど、いまどき関係ない別プロセスがメモリ上の値を書き換えたりするミスは、OSレベルでもCPUレベルでもあるので、持論を批判されていると思って反論しなくていいよ。 ここは漠然としたVBAのスレッドだから、見ているひとにはあなたの言うことは難しくて理解できないと思うよ。 スルー力がないのか、寂しくてかまってほしいのか知らないけど、要はクソコードを書くなと言ってるだけだ。
861 名前:デフォルトの名無しさん [2019/05/15(水) 02:28:07.88 ID:MwugOkQt.net] なんでVBAスレで組み込み系のショボいハードウェアでのプログラミングを語っているのか? ハードウェア、OS、ミドルウェア、プログラミング言語によって考え方やどこまで想定するのかは全然、違うからいっしょくたにしないでもらいたい。
862 名前:デフォルトの名無しさん mailto:sage [2019/05/15(水) 02:29:01.28 ID:O3OiMSIx.net] 一般ユーザー権限のアプリで別プロセスのメモリにアクセスできたのは、平成どころか昭和時代の話ですよ、おじいちゃん 希にOSやCPUのバグ騒ぎが起きますが、そんなのは例外中の例外なんで普通は気にしなくていいことです
863 名前:デフォルトの名無しさん [2019/05/15(水) 02:37:35.16 ID:MwugOkQt.net] Windows 95、98、98SE、MeがいつのOSかもわからないのか
864 名前:デフォルトの名無しさん mailto:sage [2019/05/15(水) 05:12:46.46 ID:TahQLJDH.net] そこまでわかってるのに、タチの悪いやつだな
865 名前:デフォルトの名無しさん mailto:sage [2019/05/15(水) 16:00:34.96 ID:D3RbfE7K.net] イベント用インスタンスはPublicでやるの?
866 名前:デフォルトの名無しさん mailto:sage [2019/05/15(水) 20:12:16.23 ID:XVltvZnu.net] せっかくのイベントなのにPrivateにしたら星飛雄馬のクリスマスパーティーみたいになるじゃん
867 名前:デフォルトの名無しさん mailto:sage [2019/05/15(水) 20:14:51.37 ID:RIeke8Yt.net] >>848 座蒲団3枚あげる
868 名前:デフォルトの名無しさん [2019/05/15(水) 20:49:39.00 ID:WHH9UP0v.net] 何か面白いこと言った? 全然わからない。 興味あるからなぜ面白いか教えて?
869 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 02:08:04.88 ID:Ab5DOH6n.net] >>850 ニコ動 https://www.nicovideo.jp/watch/sm9033179
870 名前:デフォルトの名無しさん [2019/05/16(木) 14:30:12.55 ID:wWtnEH3A.net] コード書く画面を 背景は黒に、文字は白に、する方法を教えれ
871 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 17:24:09.37 ID:EX4VaMcQ.net] >>852 ダークテーマと天に向かって3回唱える
872 名前:デフォルトの名無しさん [2019/05/16(木) 17:37:55.97 ID:wWtnEH3A.net] >>853 知っておる mevius.5ch.net/test/read.cgi/tech/1556203263/261- 下がってよいぞ
873 名前:デフォルトの名無しさん mailto:sage [2019/05/23(木) 22:41:23.89 ID:ufKYoT27.net] Wordで文字置換をしたいのですが、特定のフォントの文字列を検索して、文字列は変えずにフォントだけ変えたいです。半角を全角にしたいのですが可能でしょうか。ヒントだけでも教えていただけると有り難いです。
874 名前:デフォルトの名無しさん mailto:sage [2019/05/23(木) 23:01:54.16 ID:ubNtK04k.net] >>855 できる 任意のRangeのCharactersのフォントを一字ずつ調べて、探しているフォントが適用されている文字が見つかったらその文字のフォントを修正すればいい 半角から全角に変換するにはStrConv関数を使用し、第2引数conversionには列挙定数のvbWideを指定する
875 名前:デフォルトの名無しさん mailto:sage [2019/05/23(木) 23:16:33.41 ID:fmz+6NIG.net] wordの標準機能で半角全角変換あったような
876 名前:デフォルトの名無しさん mailto:sage [2019/05/23(木) 23:29:43.67 ID:ufKYoT27.net] >>856 ありがとうございます! やってみます。 >>857 上手くいかなかったと思います。。
877 名前:859 mailto:sage [2019/05/28(火) 16:00:47.95 ID:JWvhlEsx.net] 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 くみこ
878 名前:859 mailto:sage [2019/05/28(火) 16:01:28.69 ID:JWvhlEsx.net] 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
879 名前:デフォルトの名無しさん mailto:sage [2019/05/28(火) 16:38:34.40 ID:Z4r31Ymp.net] >>860 i=i+1 が抜けてるだけじゃね?
880 名前:デフォルトの名無しさん mailto:sage [2019/05/28(火) 16:40:41.12 ID:Z4r31Ymp.net] >>861 それと、行や列用の変数として r c 使ってもええんやで
881 名前:859 mailto:sage [2019/05/28(火) 17:30:10.75 ID:xKlK3b52.net] >>861 ファッ!それかも! マジでありがとうです! 何かあったらまた聞きます ホントありがとう、頭いい人!
882 名前:デフォルトの名無しさん mailto:sage [2019/05/28(火) 18:33:24.92 ID:1J9FOJWe.net] 初心者です。 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を中心にお勧めの書籍などありましたら教えていただきたいです。 今の書籍は痒いところに手が届かず…
883 名前:859 mailto:sage [2019/05/28(火) 19:44:38.82 ID:xKlK3b52.net] >>861 set temp = .findnext(temp)の下に i=i+1を入れた所、できました。 本当にありがとう!助かりました(T^T)
884 名前:デフォルトの名無しさん mailto:sage [2019/05/29(水) 00:12:19.46 ID:S0wmSPvZ.net] >>864 定番は「最速攻略 Word マクロ / VBA徹底入門」 Word VBAの書籍やWEBサイトは選択肢が圧倒的に少ないから、基本がわかったらVBEのオブジェクトブラウザやネットでMSDNを見た方が確実
885 名前:デフォルトの名無しさん mailto:sage [2019/05/29(水) 09:29:45.93 ID:YAhbpcsl.net] 学校でVBAを勉強した方はどんな
886 名前:Q考で勉強したんでしょうか? [] [ここ壊れてます]
887 名前:デフォルトの名無しさん mailto:sage [2019/05/29(水) 09:30:35.46 ID:YAhbpcsl.net] ×参考 ◯参考書
888 名前:デフォルトの名無しさん mailto:sage [2019/05/29(水) 09:32:43.10 ID:YAhbpcsl.net] 書籍の名前聞いてみたい
889 名前:デフォルトの名無しさん mailto:sage [2019/05/30(木) 15:12:11.08 ID:V/L1IaNJ.net] >>Wordのユーザーフォーム 必要性が今一分からん
890 名前:デフォルトの名無しさん mailto:sage [2019/05/30(木) 18:04:51.34 ID:2aR1E9YD.net] Wordは機能拡張に凝り出すと面白いよ
891 名前:デフォルトの名無しさん mailto:sage [2019/05/30(木) 18:38:59.73 ID:3bWSKYGB.net] >>870 いろんなソースで、色つけたり太字にしたり、用紙指定や段組みして印刷させる 。 炎上プロジェクトに突撃するのに必須
892 名前:デフォルトの名無しさん mailto:sage [2019/05/30(木) 18:47:13.10 ID:2aR1E9YD.net] >>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
893 名前:デフォルトの名無しさん mailto:sage [2019/05/30(木) 19:32:14.84 ID:2aR1E9YD.net] こっちのがスマートだった '選択範囲内にあるテーブルの一行目以外をクリアします。 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
894 名前:デフォルトの名無しさん mailto:sage [2019/05/30(木) 19:50:35.91 ID:2aR1E9YD.net] もし文字編集でcell()下位の.Rangeが省略されてるのを知らないと cell.Range.Deleteの文字削除とcell.Deleteのセル削除が 使い分けができないので注意
895 名前:デフォルトの名無しさん mailto:sage [2019/05/30(木) 22:47:58.04 ID:JR52NV0g.net] >>871 そうだろうけど、 他のOfficeでも出来るんじゃないの? 拡張って参照設定の事でしょ? >>874 マジかよWord Tableって・・。 ExcelでSQLが使えたり、Officeは割と何でもありだとは思っていたが・・。
896 名前:デフォルトの名無しさん mailto:sage [2019/05/30(木) 23:32:10.68 ID:2aR1E9YD.net] >>876 リボンやクイックアクセスツールバーとかで増やすほうね>機能拡張
897 名前:デフォルトの名無しさん mailto:sage [2019/05/31(金) 00:15:43.14 ID:P50R/Vqw.net] NothingとNullとEmptyの違いがわからない MSはナンセンス、はっきりわかんだね
898 名前:デフォルトの名無しさん mailto:sage [2019/05/31(金) 00:35:41.84 ID:/aDGaFpI.net] EmptyはVariant型の初期状態(何も入ってない) セルの初期状態でもある 確認方法 新規ワークシートに対して、イミディエイトウィンドウで Print TypeName(Cells(1,1).Value) とすると Empty と表示される Nothingはオブジェクト型変数にオブジェクトが代入されていない(結びつけられていない)状態 NullはExcelだと出番がないと思っていい 主にAccessでデータを扱う時にNullが必要な場面が出てくる
899 名前:デフォルトの名無しさん mailto:sage [2019/05/31(金) 01:16:13.09 ID:gZfVve3x.net] 複数セルのRangeからプロパティとってくるとき不一致だとNullになるくらいやな
900 名前:デフォルトの名無しさん mailto:sage [2019/06/02(日) 23:52:18.62 ID:I/vPFDmN.net] ユーザーフォームの、複数のテキストボックス、 例えばオブジェクト名をtb1、tb2とかにしてループ文に組み込むということはできますか? オブジェクト変数というのが関係しそうな気がするんですが、 テキストを読んでも理解できない…
901 名前:デフォルトの名無しさん mailto:sage [2019/06/02(日) 23:56:26.76 ID:56udfPFB.net] >>881 すべてのテキストボックスでループ。 目的のテキストボックス群で名前を元に絞り込みすりゃ良いんじゃね。
902 名前:デフォルトの名無しさん mailto:sage [2019/06/03(月) 02:05:13.53 ID:OjX7Po3D.net] 普通はテキストボックスのTagプロバティに区別できるキーワード入れといて For eachでUserform.controlsやると思う
903 名前:デフォルトの名無しさん mailto:sage [2019/06/03(月) 08:31:11.52 ID:mpVNxBbp.net] >>881 controls(”tb” & i)
904 名前:デフォルトの名無しさん mailto:sage [2019/06/03(月) 13:44:44.83 ID:DCISZKmM.net] >>881 オブジェクトの配列作って、という事だと思うけど 使うとしたらオブジェクト参照を保持したまま色々したい時ぐらいかも 値の参照とセットだけなら皆さん挙げられているcontrolsでやりますね
905 名前:デフォルトの名無しさん [2019/06/08(土) 00:31:30.90 ID:ycKO1KOa.net] vba スタンダード 、accessのおすすめの問題集ってやっぱり公式テキストでしょうか。
906 名前:デフォルトの名無しさん mailto:sage [2019/06/08(土) 11:47:13.10 ID:pWKWNjKi.net] エクセル Cells(1,1) ワード Cell(1,1) ↑ は? 何でワードにはsが無い?
907 名前:デフォルトの名無しさん mailto:sage [2019/06/08(土) 16:19:13.22 ID:pA8BerVC.net] >>886 先月に出題範囲かわったし公式でしょ
908 名前:デフォルトの名無しさん mailto:sage [2019/06/08(土) 16:27:53.67 ID:pA8BerVC.net] >>887 Word.Selection.CellsとかRow.Cellsとかあるで Tableには.Cell(1,1)しかないがな ちなCellsはxy指定できんがCellはxy指定必須や エクセルのプロパティのほうが異常なんやで
909 名前:デフォルトの名無しさん [2019/06/12(水) 20:44:31.77 ID:WUwNpP1f.net] 新垣結衣 AVデビュー https://www.xvideos.com/video48369883/_ai_
910 名前:デフォルトの名無しさん [2019/06/12(水) 21:19:56.07 ID:Hop9ON+a.net] vba エキスパート は、excel ベーシック以外は公式テキストまだだから受験は待ったほうがいいですよね。
911 名前:デフォルトの名無しさん [2019/06/19(水) 04:56:48.65 ID:tVNS+22r.net] 【出資】松本卓朗 人工知能詐欺【注意】 https://rio2016.5ch.net/test/read.cgi/rikei/1560859403/
912 名前:デフォルトの名無しさん mailto:sage [2019/06/24(月) 19:31:10.71 ID:XS1zoxjN.net] 以前word VBAの質問をした者ですが、その節はありがとうございました。 お陰様で処女作のユーザーフォームが完成しかかっているのですが、最終問題に難儀しています。 やりたい事:「保存」ボタンを押す→ActiveDocumentと同じ場所に「記録表」というフォルダを作成し、 その中に「"氏名”」というファイルを生成する。既に「記録表」のフォルダがあればフォルダは作成せず、 そちらにファイルを生成する。 なお、不特定多数のユーザーが使う前提です(保存場所を手打ちしたらユーザー名で詰む) 四苦八苦しましたが、ひとまず確認用にdesktopに生成しようとしてなんかユーザーフォルダの滅っ茶根深い場所に生成されたり、 推測で打ってみたメソッドが全く機能しなかったり(フォルダの有無を確認するようなのって何だろう) なんというか、Excelのfxボタンみたいにメソッドの内容を教えてくれるやつ、ないんですかね… ちなみに職場のPCはスタンドアロンでヘルプに繋がらず、自宅PCにはOfficeが入ってないです。
913 名前:デフォルトの名無しさん mailto:sage [2019/06/24(月) 22:54:40.46 ID:klKakRL3.net] >>893 オフラインヘルプインストールできなかったっけ… 見てみて F2キーでオブジェクトブラウザが表示される これ無しで開発なんてやってられない
914 名前:デフォルトの名無しさん mailto:sage [2019/06/25(火) 05:52:40.82 ID:A+zOKxp7.net] 今オフラインのヘルプって提供されてないんじゃないのか?
915 名前:デフォルトの名無しさん mailto:sage [2019/06/25(火) 08:17:29.97 ID:uunD1dKc.net] >>893 デスクトップはエクスプローラーの左のとこにカタカナで出てるとこと同じやで 深いとこにできても、そちらから近道すればよろし
916 名前:デフォルトの名無しさん mailto:sage [2019/06/25(火) 08:27:47.11 ID:uunD1dKc.net] >>893 〉フォルダの有無確認 昔は Dir()だったけど、今は filesystemobjectかな。 参照設定も必要なので使い方も含めてggッテください folderexists()
917 名前:デフォルトの名無しさん mailto:sage [2019/06/25(火) 10:33:29.10 ID:aRzPCUod.net] 公式オフラインヘルプがあったのは2013だな
918 名前:2016もオフライン版があるけど英語 https://github.com/OfficeDev/VBA-content/ 基本的な機能は2013からあんまり変わってないから、2013用のヘルプを入れてしまうという手もある 使い勝手は悪いけど、いつでも参照できるという利点はあるから [] [ここ壊れてます]
919 名前:デフォルトの名無しさん mailto:sage [2019/06/26(水) 09:21:12.11 ID:IYAeNPRu.net] Activedocument.Pathで所在フォルダのパスが出せる これとフォルダ名とファイル名繋げた文字列つくればSaveAs2の引数にできる
920 名前:デフォルトの名無しさん mailto:sage [2019/06/26(水) 18:32:58.67 ID:pdVAutd4.net] 質問です。excel2016の並び替え機能で 漢字、かな(あ〜ん)、アルファベット(a〜z)で並べ替えて漢字の中でも「本店」を最上位とできませんかね? 降順だと上記並びなのですが、かな(ん→あ)、アルファベット(z→a)になります。 Custumorder に「本店」を入力すると漢字中で1番下になります。 よろしくお願いします
921 名前:デフォルトの名無しさん mailto:sage [2019/06/26(水) 20:26:59.08 ID:JKpFRzRw.net] >>900 本店の前にスペース入れる
922 名前:デフォルトの名無しさん mailto:sage [2019/06/26(水) 21:08:13.27 ID:pdVAutd4.net] >>901 ありがとうございます。 やってみます。
923 名前:デフォルトの名無しさん mailto:sage [2019/07/04(木) 12:19:45.93 ID:Siuy47lc.net] Wordの表で、 ActiveDocument.Tables(2).Select みたいに選択したいのですが、どれだけ表を分割しても、 全ての表が Tables(1) という扱いなようでエラーになります。 ひとつ前に似たようなものを組んだ時には問題なくTables(2)になりましたが、 それと構文上は全く違いはありません。 どうしたら Tables(2)という扱いになるのでしょうか。
924 名前:デフォルトの名無しさん mailto:sage [2019/07/04(木) 22:43:55.95 ID:lDcVSkIh.net] ユーザーフォーム内のコンボボックスに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
925 名前:デフォルトの名無しさん mailto:sage [2019/07/05(金) 02:42:43.50 ID:grV1bh4s.net] 取得するのが D:/画像一覧/*jpeg*.jpeg になってるとか fName は iName の間違いじゃないのかとか myList は String なのにSplitした後のものを代入してるとか
926 名前:デフォルトの名無しさん mailto:sage [2019/07/06(土) 12:30:25.64 ID:z73aGQye.net] >>905 返信遅れて大変申し訳ありません 3つのご指摘直して反映できました。 ありがとうございました。
927 名前:デフォルトの名無しさん [2019/07/08(月) 13:46:50.21 ID:81aCmz3kf] 以下のようにWorksheet_Changeで加算して繰り返す内容で作りたいんですが、 コードまとめられませんかね? Private Sub Worksheet_Change(ByVal Target As Range) Select Case Target.Address Case "$E$3" Range("$I$3").Value = Date Case "$E$4" Range("$I$4").Value = Date Case "$E$5" Range("$I$5").Value = Date ・ ・ ・ End Select End Sub
928 名前:デフォルトの名無しさん mailto:sage [2019/07/25(木) 16:22:05.73 ID:eKMV/4VB.net] ExcelVBAのユーザーフォーム上で、PDFを表示、操作をしたいです。 ですが、ユーザーフォームにコントロールを追加しようとすると、 「要素が見つかりません」とダイアログが表示され出来ません。 どなたか解決策をご存じの方がいましたら、教えていただけますでしょうか。。 Acrobat pro DCはインストールしてあり、ExcelはOffice365を最新の状態で使用してます。
929 名前:デフォルトの名無しさん mailto:sage [2019/07/25(木) 18:51:11.10 ID:HFVXfXT2.net] >>908 EXCELは専用スレがあるので、そちらへどうぞ
930 名前:デフォルトの名無しさん mailto:sage [2019/07/26(金) 10:59:16.22 ID:nW8IFIW6.net] >>909 ありがとうございます。 そちらに書いてみます。
931 名前:デフォルトの名無しさん mailto:sage [2019/08/14(水) 15:00:22.98 ID:Jc+eFMLQ.net] ここで質問していいかわからないんですが、違ったら誘導していただけると助かります。 メッセージボックスを最前面にするために以下のコードを利用したいのですが、呼び出し元の下から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 よろしくお願いします。
932 名前:デフォルトの名無しさん mailto:sage [2019/08/14(水) 19:26:49.04 ID:uFuQVnLY.net] 【呼び出し元】 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
933 名前:デフォルトの名無しさん [2019/08/14(水) 19:27:35.96 ID:uFuQVnLY.net] 他にExecを使う方法もある
934 名前:デフォルトの名無しさん mailto:sage [2019/08/14(水) 20:05:03.77 ID:6C5bzX4k.net] vbDefaultButton1 とか、そういうのじゃなくて?
935 名前:デフォルトの名無しさん mailto:sage [2019/08/15(木) 00:01:28.86 ID:GUoAoBO9.net] >>912 ありがとうございます! 試してみます! >>914 すみません、vbDefaultButton1 がわかりません
936 名前:デフォルトの名無しさん mailto:sage [2019/08/16(金) 11:35:25.09 ID:vco+QnrA.net] >>912 >911,>915です。 教えていただいたコードを試してみたのですが、 ‘何か処理を書く のところに MsgBox hoge と入れたのですが、「はい」「いいえ」どちらの場合も 0 が返されます。 どうしたらいいでしょうか
937 名前:デフォルトの名無しさん mailto:sage [2019/08/16(金) 13:41:00.72 ID:2LlAcZB1.net] ??? VBAなの? VBSなの? MsgBox使えるのに、何でWscript使ってんの?
938 名前:デフォルトの名無しさん [2019/08/16(金) 13:48:44.09 ID:mZqFzvyq.net] 朗報 【アプデ/10】 2019年8月14日のWindowsUpdate後、VB関連が死亡。Windows10全バージョンにて https://asahi.5ch.net/test/read.cgi/newsplus/1565930238/
939 名前:デフォルトの名無しさん [2019/08/16(金) 14:13:30.60 ID:WTD6eyC3.net] >>916 【WSHPopUP.vbs】 のWSHObj.Quit fuga は間違い。エラー出してる。 Wscript.Quit fuga が正しい
940 名前:デフォルトの名無しさん mailto:sage [2019/08/19(月) 10:24:33.34 ID:ELmh1Bgt.net] >>919 返信遅くなってすみません。 レスの通りに修正し、 さらに fuga = WSHObj.Popup Arg(0),Arg(1),Arg(2),Arg(3) 'popupの戻り値を取得 ↓ fuga = WSHObj.Popup(Arg(0),Arg(1),Arg(2),Arg(3)) 'popupの戻り値を取得 に変更し、成功しました。 たいへん助かりました。 ありがとうございました。
941 名前:デフォルトの名無しさん mailto:sage [2019/09/25(水) 10:50:56.65 ID:L8CrQHgr.net] WordのアクティブXコントロールのテキストボックスなのですが BackStyleを0設定すると背景色は消えるのですが デザインモードを解除すると背景色が出てしまいます これはバグでしょうか
942 名前:デフォルトの名無しさん [2019/10/05(土) 18:37:18.60 ID:t92B7IO1M] winAPIのAddClipboardFormatListenerをVBAで使う方法教えてください。 Private Declare PtrSafe Function AddClipboardFormatListener Lib "user32.dll" (ByVal hWnd As LongPtr) As Long Sub test3() AddClipboardFormatListener (hWnd) End Sub として実行してもなにも起きません。
943 名前:デフォルトの名無しさん [2019/11/05(火) 18:33:26.09 ID:CrKvYzfV.net] DataObjectオブジェクトについて https://chiebukuro.yahoo.co.jp/ VSI
944 名前:デフォルトの名無しさん [2019/11/05(火) 18:35:53.47 ID:CrKvYzfV.net] DataObjectオブジェクトについて https://chiebukuro.yahoo.co.jp/ FQB
945 名前:デフォルトの名無しさん [2019/11/06(水) 06:26:58.33 ID:jiZZUv+M.net] CInt 関数 VBA vba-auto.com/cint_function_vba/ NQ2
946 名前:デフォルトの名無しさん [2019/11/06(水) 06:26:59.50 ID:jiZZUv+M.net] CInt 関数 VBA vba-auto.com/cint_function_vba/ NQ2
947 名前:デフォルトの名無しさん mailto:sage [2019/11/21(木) 09:09:00.43 ID:IRESAa/B.net] Exchange / Outtlook VBAの質問です 初歩的な質問で申し訳ありませんが、お知恵を拝借できないでしょうか 任意の名前を持つ配布リストや連絡先グループに属するExchangeユーザーのSMTPアドレスの一覧を取得するにはどうしたら良いのでしょうか 配布リストや連絡先グループをExchange ユーザーとして取得するところまでは出来ているのですが、そこから先がうまくいきません なお配布リスト、連絡先グループいずれも個人ユーザーのみが登録されている前提なので、再帰によるメンバー取得は不要な状況です
948 名前:デフォルトの名無しさん mailto:sage [2019/12/31(火) 13:22:12.18 ID:CEriAQ2K.net] エスパー的にはexchangeユーザーのユーザー一覧と配布リストのユーザーの 名前を比較すればいいんじゃね
949 名前:デフォルトの名無しさん mailto:sage [2020/04/20(月) 00:19:17.36 ID:DXvjb/RZ.net] 3日がかりの捜索ww あきらめないのな
950 名前:デフォルトの名無しさん mailto:sage [2020/05/10(日) 01:11:39 ID:DSeO3ORc.net] 3日どころじゃないぞ
951 名前:デフォルトの名無しさん mailto:sage [2020/05/25(月) 10:28:15.88 ID:vLFHqXr3.net] >>927 これについて何か解決方法ありましたか?私も配布グループ取得で難儀しております。
952 名前:デフォルトの名無しさん mailto:sage [2020/05/25(月) 12:24:29 ID:palYJx03.net] 半年放置で読むかね
953 名前:デフォルトの名無しさん mailto:sage [2020/06/10(水) 10:39:28 ID:vabPclBn.net] >>927 と>>931 って同一人物だろどうせ
954 名前:デフォルトの名無しさん [2020/06/27(土) 08:55:28.74 ID:9qJBLgyD.net] Aex
955 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 16:37:07.95 ID:TjDVHLrR.net] VBAの質問スレで質問するのはなぜ馬鹿ばっかりなのですか?
956 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 16:43:50.13 ID:CiV3+vm0.net] >>935 このスレのレベルを知ってる普通以上の人はここを頼ったりはしないから
957 名前:デフォルトの名無しさん mailto:sage [2020/07/11(土) 22:25:50.10 ID:R8+8lu0C.net] 頼むからVBAでWin32 APIを呼び出すのはやめてくれ そこまで要求するなら包括的な自作DLLを作ればよいと
958 名前:デフォルトの名無しさん mailto:sage [2020/07/12(日) 04:44:26.92 ID:+vVO/8n9.net] >>937 なんでやめてほしいの?
959 名前:デフォルトの名無しさん mailto:sage [2020/07/12(日) 07:53:31.55 ID:tbEOHCQG.net] ものぐさが使うのがVBAなのに いちいちDLL化なんてめんどくせえ
960 名前:デフォルトの名無しさん mailto:sage [2020/07/12(日) 10:51:54.06 ID:03QLQuvk.net] >>938 Declare文が多すぎてコードが見づらい
961 名前:デフォルトの名無しさん mailto:sage [2020/07/12(日) 11:07:05.40 ID:4WTYr4qc.net] 見なきゃいいだろ
962 名前:デフォルトの名無しさん mailto:sage [2020/07/12(日) 14:43:36.83 ID:HEMY1mlG.net] Win32API使える奴がDeclare文読むの? そりゃ、間違ってるとかおかしなのも中にゃあるけど、普通そんなとこ見ないだろ。
963 名前:デフォルトの名無しさん [2020/07/14(火) 21:09:03.79 ID:66utiKuE.net] 質問スレにも書き込んだのですが二つのieを起動して2つ目のieでpdfを開いて名前をつけて保存したいのですがexecwbを行うと一つ目のieのhtmlが選択されてしまいます。どうかやり方を教えてください。よろしくお願いします。getIEはシェル取得ファンクションです。 Set ie = CreateObject("InternetExplorer.Application") ie.Visible = True ie.navigate "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
964 名前:デフォルトの名無しさん [2020/07/14(火) 21:45:01.80 ID:euO1Ygvg.net] 初心者です。どうかお力添えをよろしくお願いします。
965 名前:デフォルトの名無しさん [2020/07/14(火) 22:53:58 ID:euO1Ygvg.net] すいません 自己解決しました。単純なスペルミスでした
966 名前:デフォルトの名無しさん mailto:sage [2020/08/03(月) 07:54:11.09 ID:4AChPi7X.net] 製品番号のフォルダ検索して中のPDFファイルを開くようなマクロ書いてるんだけど 先日Officeのアップデートしたら、件のマクロがしばらく応答なしになって 悪意のあるマクロ云々とか言われてExcel強制終了になった それ以後そのマクロは激遅に ブックのファイル名変えたりマクロの関数名変えたりするとしばらくは元の速度に戻るが 1日位経つとまた遅くなる 調べてみたら、VBScript.RegExpのExecuteメソッドが10秒位かかるようになってる 通常は30msで終わるような代物がだ どうもShellやRunで一度に多数のPDFファイルを開いているのがお気に召さなかったらしく ファイル名や関数名でアンチウィルスのブラックリストに載る? そのあとはそれっぽい名前のメソッドが標的になり遅くなるような感じ こういうの経験した人いる?
967 名前:デフォルトの名無しさん mailto:sage [2020/08/03(月) 12:15:10.36 ID:wycAObPT.net] アンチウィルスソフトとかいうウィルスを捨てろ
968 名前:デフォルトの名無しさん mailto:sage [2020/08/04(火) 17:10:57 ID:FjnHeWDC.net] 会社のPCじゃなければそれもありだが… paloalto trapsとかいう奴 毎回反応する訳じゃないのが嫌だし 編集中のデータも問答無用でごっそり強制終了しやがるふざけんな
969 名前:デフォルトの名無しさん mailto:sage [2020/08/05(水) 03:07:47.57 ID:EWWIYLqc.net] 除外指定すればエエやん
970 名前:デフォルトの名無しさん mailto:sage [2020/08/05(水) 09:06:26.86 ID:FS19WAoY.net] >VBScript.RegExpのExecuteが10秒 と >ShellやRunで一度に多数のPDFファイルを開いている の関連がわからんね この二つは分けて原因を探るべきじゃ?
971 名前:デフォルトの名無しさん mailto:sage [2020/08/05(水) 09:37:11 ID:FS19WAoY.net] マクロ付ファイルでPDF開かせるてのは相当に怪しいと捉えられる可能性は高いね セキュリティ変更や除外設定なんてのは出来ればしたくないだろうし引っかからないような対策があればいいがな ShellやRunでPDF開くんじゃなくExcelもしくはWordに取り込ませるようにすると引っ掛からないかもという気がしなくもない
972 名前:デフォルトの名無しさん mailto:sage [2020/08/06(木) 06:47:20 ID:SEE4FkRy.net] VBAから直接PDFを開くんではなく バッチファイルを書き出し実行することで反応の確率は減ったが アンチウイルスが反応しやすい型番とかあってよくわからん 正規表現のexecuteメソッドは「それっぽい」名前のメソッドだろ? これがアンチウイルスが反応したときに動作してた関数から呼ばれた時だけ遅くなるんだよ 同じブック中の他の関数から呼ばれた時は高速のままだ dir関数でフォルダ内部のファイル名取得して正規表現検索してる時だけアホみたいに遅くなる時がある
973 名前:デフォルトの名無しさん [2020/09/01(火) 22:25:39.71 ID:zpaWCruh.net] VBA開発を頼まれた いくら位金額を提示したら良いか誰か教えてほしい 内容は不動在庫を15店舗くらいあグループ店の売り上げデータから引取先の候補を検索するシステム 商品のバーコードから行き先候補を検索する予定。 この内容ってアウトソーシングするといくら位?
974 名前:デフォルトの名無しさん mailto:sage [2020/09/01(火) 22:33:35.56 ID:l37i0zd6.net] 50円
975 名前:デフォルトの名無しさん mailto:sage [2020/09/02(水) 00:25:45.48 ID:aLOgXzIZ.net] 余裕みて1人週
976 名前:デフォルトの名無しさん mailto:sage [2020/09/02(水) 07:41:48.93 ID:9bMNhGbM.net] >>953 マジレスするとVBAは安いので1人月50ぐらいかな。 内容の詳細が分からないが、大して難しいとは思えないので。 どんなに簡単でも50以下は有り得ない。
977 名前:デフォルトの名無しさん mailto:sage [2020/09/02(水) 12:23:19.05 ID:IJ4By44m.net] >>953 人によるだろうな 安く提示すると未経験者とかがくるぞ
978 名前:デフォルトの名無しさん [2020/09/04(金) 13:35:21.25 ID:YrY1uJ8P.net] 皆さま回答ありがとうございました!
979 名前:デフォルトの名無しさん mailto:sage [2020/09/05(土) 14:34:31.84 ID:NQbTfPgu.net] >>946 遅レスだけど 速度が遅い件は経験ありますよ うちの環境で調べたらSYMANTECのエンドポイントは大丈夫で、MSのディフェンダーだと遅かった Win10のバージョンも影響したかもしれないけど、現行サポート対象バージョンは、ディフェンダーだとすべて遅い 会社のPCなんでActiveDirectory、SYMANTEC、SKYSEAがスタンダードなんだけど、更新時の不具合があったんで一部のPCでディフェンダーを使ってて発覚した VBSの内容は、多少分岐やループはあるけど正規表現を使って置換するだけの簡単なものだった
980 名前:デフォルトの名無しさん [2020/09/09(水) 22:08:05.33 ID:kLG5WjnA.net] ミッションクリティカルな仕事をVBAでやってるのに、 少し前から動かなくなって修正したくても前任者がこの世に不在+仕様書やマニュアル無し+社内プログラム分かる人いない って状況割とよく聞くけど、まあ自分が担当することになったんだけど、これどーすりゃいいの? 何社かソフトウェア開発系の会社に話聞きにいったら、vbaはちょっと・・・とか、プログラムみてこれはちょっと・・・って反応だし 1千万超える金積むとなると役員に説明しなくちゃならないんだけど、なんでおまえがやらないの?みたいな反応だし まあ、控えめに言ってこのまま止まり続けると会社潰れるから言い値で出すしか無いんだろうけど こういう状況、ここに巣喰う人達はどうやって乗り越えたのかアドバイスやヒントください 転職、以外で
981 名前:デフォルトの名無しさん mailto:sage [2020/09/09(水) 22:09:54.34 ID:vVw6LQjX.net] ミッションクリティカルなのに止まっても平気なのか 不思議な世界観
982 名前:デフォルトの名無しさん mailto:sage [2020/09/09(水) 22:58:18.76 ID:sZuFJhML.net] >>960 素人が作っためちゃくちゃなコードのデバッグや修正は仕事でもやってるからあんまり困ったことない 言語も問わず引き受けてる
983 名前:デフォルトの名無しさん [2020/09/09(水) 23:15:38 ID:kLG5WjnA.net] >>962 すげえ 社内システム作ってるところとかつてで色んなところに聞きいったけど数百万じゃ難しいって言われたんだ 分かる人には難しさっていうか、見積もりがわかるもんなんだな 参考までにどういうところを見て判断するもんなの? 偉い人に説明するときの参考にしたい
984 名前:デフォルトの名無しさん mailto:sage [2020/09/10(木) 01:17:25.37 ID:Uj/ZEArt.net] >>963 変数名、インデント、コメントの入り方なんかを見れば、制作者のレベルがだいたいわかる その上でソースの行数、モジュール数がどれぐらいか
985 名前:デフォルトの名無しさん mailto:sage [2020/09/10(木) 01:28:39.24 ID:R4ATSmnt.net] マクロの記録をベースにしてるのは危険な感じがする あとループの中にgotoが入ってるやつ見たときはちょっと感動した
986 名前:デフォルトの名無しさん mailto:sage [2020/09/10(木) 01:35:20.13 ID:fOUD4fUU.net] vba捨ててまともなところに新しくシステム作ってもらった方が安いし早そう
987 名前:デフォルトの名無しさん mailto:sage [2020/09/10(木) 01:38:51.21 ID:JZj4+m/A.net] それだと社内で仕事が無くなるおっさんたちが文句言い出す
988 名前:デフォルトの名無しさん mailto:sage [2020/09/10(木) 12:15:12.05 ID:dws80o57.net] 住宅で喩えるなら 地場でイチから設計・施工をする在来工法のパワービルダーや 社内で設計した通り加工し現地で組み立てるだけのハウスメーカー 又は方式は 一緒だけどコスト削減に特化して現地の安い下請け使って費用を抑えるローコスト系 システムを売りにしてる企業は上で言うHMに近く、依頼すればひと声一千万は相場 PBはどんどん規模が縮小してるから探すのも大変 LCHMなら見付かるかも知らんが 要求に応じかねるレベルだと思われる 当時の社内の人間が内製したレベルならその条件、例えばExcelVBAと絞って 改修・修繕の可不可(得意かどうか)を先ず相手に問えば話が早いかも知れない 業務内容を伝えるだけだとうまく伝わらずに高額商品を売る方向に話が進み兼ねない
989 名前:958 mailto:sage [2020/09/10(木) 12:19:21.40 ID:Oh+8RCfx.net] >>964 はえ〜・・・なるほどなぁ 変数名は一応業界の人なら意味が分かる程度 インデントはルールから逸脱してるのはほぼない、とおもう コメントはあることはあるけど助けられたコメントはほぼないな 'ここで●×処理をする Sub ●×処理(・・・・・・・) みたいなw 行数はただの改行も含めると3万行くらいで モジュールが4、functionが500、subが1500くらい この辺が大量にあるから難しいって説明しようとしてたんだけど 数行(ステップ?)なら別にF8ポチポチしながら追えるんだよね じゃあ足りないのは根気だろ、みたいに言われて循環複雑なんちゃらみたいなの調べてたけど 結局こんな数字だしても理解されないだろうしなぁってのと、単に俺が素人だからってのもあって今に至る >>966 マジそれなんだけど、何をしてるのか誰もわかんないから何を作ってもらえば良いのかも説明出来ないっていうねw 世間で言われてる炎上案件よりよっぽどかわいいレベルなのかも知れないけど マジであと数ヶ月放置して会社潰れればいいんじゃねーかとも思ってる
990 名前:958 mailto:sage [2020/09/10(木) 12:20:28.24 ID:Oh+8RCfx.net] >>968 おっと、同じ人かもしれんけどありがとなあ
991 名前:デフォルトの名無しさん [2020/09/10(木) 12:36:48 ID:l+lun8zf.net] >>963 わかんねーから高めに見積もってんだよ
992 名前:デフォルトの名無しさん mailto:sage [2020/09/10(木) 13:19:24.92 ID:4mlwjCSe.net] >>969 他人の作ったプロシージャを2千個3万行解析してドキュメントを作成しながらデバッグなら1千万はまあまあ妥当かと 設備投資でたった1千万が出せない会社は遠からず潰れると思うよ ほかの資産や設備だって千万単位の修理はいつ発生してもおかしくないし
993 名前:デフォルトの名無しさん mailto:sage [2020/09/10(木) 22:45:47.73 ID:Oh+8RCfx.net] >>972 詳しい人にそう言ってもらえるとたすかる とりあえず素人がやるもんじゃ無いって話は集めたので素直に金だせやって資料作ってるw しかし1千万つめばできちゃうってのもすげーなあ 個人にとっては大金だけど、会社にとっては中堅社員一人分/年くらいの費用だもんな
994 名前:デフォルトの名無しさん mailto:sage [2020/09/11(金) 11:34:11.36 ID:LThuGd0x.net] 解析・デバッグ・ドキュメント作成でひと声一千万? じゃ、せっかく解析できたんだしそれをベースに新システム製作費は? パッケージから大きく外れるものだったらオリジナル新規作成?千万? 都合?千万? せっかく途中まで分析し始めたようだし「わたしに二千万ください、これやります」でいーじゃん
995 名前:デフォルトの名無しさん mailto:sage [2020/09/11(金) 19:07:30.23 ID:0mQCTSsr.net] >>974 日本語で
996 名前:デフォルトの名無しさん mailto:sage [2020/09/13(日) 14:01:55.06 ID:AJy8UwEC.net] >>974 やり方教えてくれww まあ1千万超えは最低限な感じだね 今起きてる障害を直すだけだけどね
997 名前:デフォルトの名無しさん mailto:sage [2020/09/13(日) 18:15:28.87 ID:/EQXGeQJ.net] 業務止まってるのにのん気だな せめて地方と業務とアプリぐらい概略書けば誰かがどこかを紹介するかも知れんぞ アプリはAccessと踏んだが、どう? どうせこのご時世、近場でなくともZoomやらでリモートしたりでのサポートだろうし
998 名前:デフォルトの名無しさん mailto:sage [2020/09/16(水) 23:50:50.45 ID:249cxrEP.net] 結局余所に投げる方向で解決した 乗り越えられるものとそうじゃないものを見極めるのも大切と思い込むことにした なお費用は想定の2倍近くになる模様w みんなアドバイスありがとう
999 名前:デフォルトの名無しさん mailto:sage [2020/12/20(日) 00:10:44.84 ID:14Mj/Q6q.net] >>965 > ループの中にgotoが入ってるやつ見たときはちょっと感動した Continue 文が無いメジャーな言語があってな。 GoTo Continue1 とか、書くときの隔靴掻痒感と言ったらもう・・・。
1000 名前:デフォルトの名無しさん mailto:sage [2020/12/25(金) 06:38:58.19 ID:wEXLIZpl.net] もしかしてフィルタで非表示になってるセルってVBAで値参照できない?
1001 名前:デフォルトの名無しさん mailto:sage [2020/12/26(土) 04:11:48.30 ID:NJB8+QKa.net] >>980 自己解決
1002 名前:デフォルトの名無しさん [2021/05/14(金) 13:33:45.79 ID:Kf/7Ycdt.net] WordのVBAで質問させてください。 文書内の2種類の括弧「」『』の中にある改行だけを削除するマクロを作りたいと思っています。 例えば以下のような文章に対してマクロをかけたときに 「み か ん」 ば な な 「り ん ご 」 以下のような結果になるマクロです。 「みかん」 ば な な 「りんご」 つづきます
1003 名前:デフォルトの名無しさん [2021/05/14(金) 13:34:48.74 ID:Kf/7Ycdt.net] Sub 括弧内の改行を削除() Dim myRange As Range Set myRange = ActiveDocument.Range(0, 0) With myRange.Find .Text = "[「『""]*^13*[""』」]" .Forward = True .Wrap = wdFindStop .MatchWildcards = True Do While .Execute = True With myRange.Find .Text = "^13" .Replacement.Text = "" .Forward = True .Wrap = wdFindStop .Format = False .MatchCase = False .MatchWholeWord = False .MatchByte = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchFuzzy = False .MatchWildcards = True .Execute Replace:=wdReplaceAll DoEvents End With Loop End With Set myRange = Nothing End Sub
1004 名前:デフォルトの名無しさん [2021/05/14(金) 13:35:33.64 ID:Kf/7Ycdt.net] 自分なりに以上のようなマクロを組んでみたのですが、実行してみると、 最初の「みかん」の改行は削除されるのですが、そのあとの「りんご」の改行が削除されません やり方をお教えいただけると助かります。
1005 名前:デフォルトの名無しさん mailto:sage [2021/05/14(金) 13:58:15.10 ID:dwsPOlKo.net] 馬鹿には無理
1006 名前:デフォルトの名無しさん mailto:sage [2021/05/14(金) 20:08:25.19 ID:YZr2qR8x.net] 正規表現使えば一発じゃん。 VBAって正規表現使えるんだっけ?
1007 名前:デフォルトの名無しさん mailto:sage [2021/05/14(金) 20:22:39.22 ID:pWuJPMFY.net] RegExpオブジェクトを使えば。 面倒だから俺はどうしてもというとき以外は使わない。
1008 名前:デフォルトの名無しさん mailto:sage [2021/05/14(金) 20:24:37.07 ID:6X3W89ka.net] Wordなら最初から正規表現もどきが使えるから、Excel VBAよりはちょっとだけ楽に文字列操作ができる
1009 名前:デフォルトの名無しさん mailto:sage [2021/05/15(土) 04:20:48.68 ID:rI+eK0KL.net] >>984 正規表現でマルチラインを設定して改行を空文字に置換 RegExpオブジェクトの使い方は、他の言語より面倒な書き方だったりするけど文字を操作するなら必須だと思うよ
1010 名前:デフォルトの名無しさん mailto:sage [2021/06/10(木) 19:25:30.25 ID:CLREf/YK.net] splitでいい感じに分割して判定してreplaceで改行無くしてくっ付けろ 「」は自分でつけたせ
1011 名前:デフォルトの名無しさん mailto:sage [2021/08/25(水) 17:06:39.36 ID:qYcBJ8fd.net] あんま実験してないから文句いうなよ まずはさ、アホでも考えられるような地道な形でやるべきだと思うわ そのあとに、効率性とか考えて無駄排除したりすればいいわ Sub MainProcess() Dim text As String text = Sheet1.Cells(1, 1) 'A1に括弧が含まれる文字列をいれろ Const right1 As String = "「" Const left1 As String = "」" Const right2 As String = "『" Const left2 As String = "』" text = MakeText(text, right1, left1) text = MakeText(text, right2, left2) 'B1に結果が返ってくるぞ。途中結果はメッセージボックスで順次表示されるからループ終わるまで何度もOKおせ Sheet1.Cells(1, 2) = text End Sub
1012 名前:デフォルトの名無しさん mailto:sage [2021/08/25(水) 17:06:59.82 ID:qYcBJ8fd.net] >>991 の続き Function MakeText(text As String, rightChar As String, leftChar As String) As String Dim startPosition As Integer Dim endPosition As Integer Dim InstrStartPosition As Integer InstrStartPosition = 1 Do While InStr(InstrStartPosition, text, rightChar) <> 0 startPosition = InStr(InstrStartPosition, text, rightChar) If startPosition <> 0 Then endPosition = InStr(startPosition + 1, text, leftChar) End If Dim midText As String midText = Mid(text, startPosition, endPosition - startPosition + 1) Dim midTextChanged As String midTextChanged = Replace(midText, vbLf, "") text = Replace(text, midText, midTextChanged) InstrStartPosition = startPosition + Len(midTextChanged) MsgBox "無限ループになっちゃった時はctrl + Breakを押せ" & vbCrLf & vbCrLf & text Loop MakeText = text End Function
1013 名前:デフォルトの名無しさん mailto:sage [2021/08/25(水) 17:07:53.23 ID:qYcBJ8fd.net] つかさ、rightとleftが逆だったわ まぁ動くからいいわ
1014 名前:デフォルトの名無しさん mailto:sage [2021/08/25(水) 17:18:37.37 ID:qYcBJ8fd.net] あれだ、最期の方に「だけが単独であると無限ループだわな ループの条件にその辺の修正いれておいてくれ もう寝る
1015 名前:デフォルトの名無しさん mailto:sage [2021/08/25(水) 17:34:31.79 ID:qYcBJ8fd.net] おっきした >>992 を↓に修正 Function MakeText(text As String, rightChar As String, leftChar As String) As String Dim startPosition As Integer Dim endPosition As Integer Dim InstrStartPosition As Integer InstrStartPosition = 1 Do While InStr(InstrStartPosition, text, rightChar) <> 0 startPosition = InStr(InstrStartPosition, text, rightChar
1016 名前:) If startPosition <> 0 Then endPosition = InStr(startPosition + 1, text, leftChar) End If Dim midText As String midText = Mid(text, startPosition, endPosition - startPosition + 1) Dim midTextChanged As String midTextChanged = Replace(midText, vbLf, "") text = Replace(text, midText, midTextChanged) InstrStartPosition = startPosition + Len(midTextChanged) MsgBox "無限ループになっちゃった時はctrl + Breakを押せ" & vbCrLf & vbCrLf & text Dim textForCheck As String If textForCheck = text Then MakeText = text Exit Function End If textForCheck = text Loop MakeText = text End Function [] [ここ壊れてます]
1017 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 10:10:42.16 ID:rHnN1cM5.net] 動けば良いんだよ
1018 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 12:36:26.70 ID:3DqqBWFs.net] 腕が重くて
1019 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 00:13:05.25 ID:7BIbcRgh.net] h
1020 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 00:13:11.43 ID:7BIbcRgh.net] t
1021 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 00:13:18.16 ID:7BIbcRgh.net] l
1022 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 00:17:13.66 ID:7BIbcRgh.net] n
1023 名前:小倉優子 mailto:sage [2021/09/01(水) 00:17:27.14 ID:7BIbcRgh.net] ∧,,,∧ ( ・∀・) 1000ならジュースでも飲むか ( ) し─J
1024 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 2294日 13時間 24分 43秒
1025 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています