VBAなんでも質問スレ Part2 at TECH
[2ch|▼Menu]
[1からを表示]
50:デフォルトの名無しさん
15/07/07 13:20:08.70 PlDHyacp.net
>>48
全体を動かす際のコストは明らかに相対参照のほうが上で、
レイアウト変更ならどっちもどっち、って話だよ。
俺個人としては表の各要素の絶対座標よりも表のレイアウト内での相対位置のほうが
重要だと思うんで可読性は相対表記のほうが上だと思う。
もちろん、range("E3").Range("G4")とは書かないよ
だからこそのOffset表記なんであって
仮に書くなら
工事_A = Range("G4")
工事_B = 工事_A.Offset(0,1)
みたいに書けば表の中での位置関係が分りやすい(、と思うってだけなんだけどね)
んでさ、一々相手の人格攻撃するのは止さないか?
反論するのは難しくないけどめんどくさいし
貴方にとっても内容を論理的に言うこと以外に自説の説得力を増す手法なんてないよ

51:デフォルトの名無しさん
15/07/07 16:17:25.40 yxtOW/kO.net
>>49
> レイアウト変更ならどっちもどっち、って話だよ。
そんな思い込みを前提にされてもなぁ...
> 重要だと思うんで可読性は相対表記のほうが上だと思う。
> だからこそのOffset表記なんであって
応用力ないの?
> Range("E3").Range("G4")
> ってどこ?
って書いてあるんだから、レスする前に
Range("E3").Offset(3,6)

Range("K6")
のどっちが可読性が高いかとか考えないのか?
> めんどくさいし
君にはレスしないと言う自由があるよ
反論するのも苦労してるみたいだしね w

52:デフォルトの名無しさん
15/07/07 16:28:56.71 PlDHyacp.net
>>50
>どっちが可読性が高いかとか考えないのか?
うん、だからOffsetのほうが読みやすいよ
>レスしないという自由
は確かにあるし
君にも好き勝手な方言を垂れ流す手段(自由や権利ではない)はあるんだけど、
こうやってきちんと反論しといたほうが良さそうなんで仕方ないからそうしてる

53:デフォルトの名無しさん
15/07/07 16:29:56.64 PlDHyacp.net
変換ミスしちゃった
×方言
○放言

54:デフォルトの名無しさん
15/07/07 17:37:36.10 yxtOW/kO.net
>>51
> うん、だからOffsetのほうが読みやすいよ
へー、そうなんだー、すごいねー(棒
基準の位置と Offset の値の二個読まないといけないだけでも直書きより不利なのに、読みやすいとか笑えるわ w
あと方言とか意味不明
もう少し自分の書き込み見直した方がいいんじゃね?

55:デフォルトの名無しさん
15/07/07 18:35:20.15 PlDHyacp.net
>>53
絶対アドレスが必要ならそうだけど
通常は表内部のレイアウトが問題なんだから
絶対アドレスは気にする必要ないよね?
それともいちいち「何々の項目はF5だ」とか気にして作業してるの?
俺は「表の1列目は@@@の項目で、2列目は***の項目だ」みたいな捉え方はするけど
絶対アドレスが必要になったことなんてないよ
変換ミスについてはまぁ申し訳ない、だけどそれは議論の結果には影響ないと思う。

56:デフォルトの名無しさん
15/07/08 10:49:05.20 U80w5CD7.net
>>54
> それともいちいち「何々の項目はF5だ」とか気にして作業してるの?
いちいちそんなことをしたくないから定数で定義してるんだよ
意識するのは定数を定義するコードを書く時だけ
> 絶対アドレスが必要になったことなんてないよ
Offset( ) で書くにしても、基準のセルは絶対アドレスで指定するだろ

57:デフォルトの名無しさん
15/07/08 11:43:46.03 KchLLrX8.net
>>55
まだやるんかw
いや、基準のセルは俺も絶対アドレスで指定してますよね。
それ以外の部分では表の中での位置関係(表の何行目であるとか何列目であるとか)
についての情報のみが必要であって
それは基準セル(通常は左上端)からの相対位置が分ればそれで事足りると言ってるのです。
むしろ個々の要素についてまで絶対位置指定などしても可読性が下がるだけです。
まぁ、これはあくまでも普段からR1C1形式を好んで使ってる人間(つまり俺)の意見です。
この判断の優劣・良否・正誤等々については個々人の好みも有るでしょうから
どちらの考え方が優れているとかそういう視点での議論には決着がつかないと思いますけどね。

58:デフォルトの名無しさん
15/07/08 12:37:46.79 U80w5CD7.net
>>56
> むしろ個々の要素についてまで絶対位置指定などしても可読性が下がるだけです。
根拠もなしに下がるとか言われてもなぁ
とりあえず、
個人の感想です
って書いといた方がいいんじゃないか w
Excel マスターでない一般人は
>> 基準の位置と Offset の値の二個読まないといけないだけでも直書きより不利なのに、読みやすいとか笑えるわ w
だろ
> どちらの考え方が優れているとかそういう視点での議論には決着がつかないと思いますけどね。
はい、ループいただきましたぁ w
>>48
> どう書いてもたいして変わらんから、ごちゃごちゃ言い出した >>29 とか >>31 がバカと言う主張なら納得

59:デフォルトの名無しさん
15/07/08 12:51:28.44 5jcTfYer.net
ID導入されて、本当によかった

60:デフォルトの名無しさん
15/07/08 13:02:19.06 KchLLrX8.net
>>57
>個人の感想です
>って書いといた方がいいんじゃないか

書いてますよね?
R1C1を使い慣れてる人間の意見だって。
一般人の定義がわからないけど
俺は一般人こそ表の体裁(つまり相対位置による個々の要素の関連)には気を使うけれど
その座標なんてものには関心を持たないと思いますよ。
俺自身一般人のつもりですし。
表の修正があったときに「L列から4列ずらす」ってのと
「12列目から4列ずらす」ってののどっちが分かり易いかなんて
俺に言わせりゃ一目瞭然で後者なんですけど、
あなたの言う一般人は前者を選ぶってんでしょ?
それについての価値観云々を論じることに結論が出るのかって話です。
>どう書いても
云々についてはすでに論述済みですが
全体を動かす場合には
基準セル1ヶ所のみを絶対参照で指定するほうが明らかにすぐれていますし、
レイアウトの変更であっても
Range表記で基準位置からの相対指定を用いるというのは
あくまで表の体裁の中だけに問題を帰着できるという意味で
レイアウトを記述するための手法として間違ってないと思います。
ところで、なんだか無理筋で反論続けてるように見えるのですが大丈夫ですか?
一応、われわれの議論を第三者が読んでどう判断するか
冷静に考えたほうが良いと思いますよ。

61:デフォルトの名無しさん
15/07/08 14:00:10.16 U80w5CD7.net
>>59
> 書いてますよね?
> R1C1を使い慣れてる人間の意見だって。
皮肉も理解できないの?
そもそもそれはその上の
>> 根拠もなしに下がるとか言われてもなぁ
にかかってるんだけど、そこはスルーなのな w
> 表の修正があったときに「L列から4列ずらす」ってのと
> 「12列目から4列ずらす」ってののどっちが分かり易いかなんて
あのさあ、反論できずに悔しいのはわかるけど、「ずらす」なんて変更がどれだけあるんだ?
って話に戻すの?
普通は、>>13 の例だと 注文書番号 を少し左に寄せたいから AO1 から AN1 に移動させてくれって言われるんじゃね?
直書きならその部分のみを AO1 から AN1 に書き換えるだけ
で、君の方法だとどうなるわけ?
可読性がすごくいいんでしょ?
示してみてよ。
> ところで、なんだか無理筋で反論続けてるように見えるのですが大丈夫ですか?
> 一応、われわれの議論を第三者が読んでどう判断するか
> 冷静に考えたほうが良いと思いますよ。
鏡見た方がいいと思うよ w

62:デフォルトの名無しさん
15/07/08 15:15:33.15 KchLLrX8.net
>>

63:デフォルトの名無しさん
15/07/08 15:39:00.14 KchLLrX8.net
>>60
>根拠
ですから、>>59とかそれ以前の>>49とか>>54とか>>56とかは
全部根拠について書いてるんですが。
意図的なスルーですか?
>普通は、>>13 の例だと 注文書番号 を少し左に寄せたいから AO1 から AN1 に移動させてくれって言われるんじゃね?
>直書きならその部分のみを AO1 から AN1 に書き換えるだけ
>で、君の方法だとどうなるわけ?
いや、オフセット一個増やすだけでしょ
ところで、注文書番号 のAOは一番右端の列っぽいのであえてそこを選んでるんですか?
たとえばB列の外注業者名がずれたら残り全部ずれると思うんですけど。
んでもってそういった場合(一番右端の要素以外の変更の場合)、
「どこどこに@@って項目を追加するから、表を**の項目から全部右にX個ずらして」
みたいな話になるんじゃないでしょうか。
どうみたってオフセットのほうが簡単じゃないですか。
>鏡見た方がいいと思うよ
もちろん、俺は第三者を意識して書いてるので問題ないです。
貴方もそれで良いならこれ以上とくに言うべき事も有りません。

なお>>61は打ち間違えて送信しちゃいました。
たびたびスマン

64:デフォルトの名無しさん
15/07/08 19:21:57.08 U80w5CD7.net
>>62
> ですから、>>59とかそれ以前の>>49とか>>54とか>>56とかは
> 全部根拠について書いてるんですが。
レス番で書かれてもわからないので、該当の箇所を引用してみて
> いや、オフセット一個増やすだけでしょ
で、それが本当に AN1 を指してるのかどうやって確認するの?
可読性がいいんだから一目でわかるんだよね?
早く示してみてよ。
> ところで、注文書番号 のAOは一番右端の列っぽいのであえてそこを選んでるんですか?
一番最初の項目を選んだだけですよ
> みたいな話になるんじゃないでしょうか。
またその話?
>>37
> 仕様変更で項目順の変更とか途中に項目追加とかのほうが多いだろうけど。
って書かれてますよ。
> 貴方もそれで良いならこれ以上とくに言うべき事も有りません。
人のことをとやかく言う前に...
> なお>>61は打ち間違えて送信しちゃいました。
落・ち・着・け・よ

65:デフォルトの名無しさん
15/07/08 21:05:13.66 G6HCaUBj.net
それよりParamArrayが参照渡しできないのはなぜなんだせ?

66:デフォルトの名無しさん
15/07/08 21:21:46.83 KchLLrX8.net
>>63
>該当の箇所を引用してみて
>>俺個人としては表の各要素の絶対座標よりも表のレイアウト内での相対位置のほうが重要だと思うんで
可読性は相対表記のほうが上だと思う。
>>絶対アドレスが必要ならそうだけど通常は表内部のレイアウトが問題なんだから絶対アドレスは気にする必要ないよね?
>>表の中での位置関係(表の何行目であるとか何列目であるとか)についての情報のみが必要であって
それは基準セル(通常は左上端)からの相対位置が分ればそれで事足りると言ってるのです。
>>俺は一般人こそ表の体裁(つまり相対位置による個々の要素の関連)には気を使うけれど
その座標なんてものには関心を持たないと思いますよ。
以上、大体全部同じことの繰り返しですが、この辺が俺の主張する可読性に関する意見の根拠です。
本文長すぎるんで続きます。

67:デフォルトの名無しさん
15/07/08 21:22:59.14 KchLLrX8.net
>>65の続きです
ただ、ここに来て根本的な部分の食い違いを実感してるのですが、
>それが本当に AN1 を指してるのかどうやって確認するの?
>可読性がいいんだから一目でわかるんだよね?
というあなたの指摘自体が俺の考えている可読性の概念とは食い違ってます。
あなたは結局シート内でのセルの絶対位置指定やその確認でしか可読性を考えていないようで
俺は逆にそんなものにはこだわらず表のレイアウト中での位置指定という視点で可読性を捉えているわけです。
あなたのやり方は確かにあなたの言うようなシチュエーションでは有効でしょうが、
逆にここまでで俺の主張したようなシチュエーションでは可読性やメンテナンス性が劣るということになります。
たとえばこれですけど
> 仕様変更で項目順の変更とか途中に項目追加とかのほうが多いだろうけど。
途中に項目追加したらそこから先は全部ずれるでしょ?
(よほどスカスカの表なら別ですが、それなりに埋まってる表の場合にはそうならざるを得ません。)
そうするとセルアドレス全部直さなきゃならなくなります。
その場合には全部同じ変更(当該変更箇所を一律にオフセットずらす処理)
で対処できることってメンテナンスには大きなアドバンテージだと思いますよ。
まさか普通の業務ってのがスカスカの表でセル一個だけ変更する作業ばかりだなんて虫の良い事言わないですよね?
実際俺んとこじゃあこういう多数のセルを移動するような業務ばかりなんで俺にとってはそっちのほうが普通なんですよ。
>落・ち・着・け・よ
まぁ、打ち間違いとか変換ミスは良くやっちまうんでスミマセンとしか良いようないけど
重要なのは主張の論旨であってそれは読み手側にある程度の知識があれば
変換ミス程度は何がいいたいのか読解できるだろうからまぁ別にいいかなと思ってます。

68:デフォルトの名無しさん
15/07/08 21:45:49.65 t0H2tWbI.net
>>65
根拠頂戴って言ったら
> >>俺個人としては表の各要素の絶対座標よりも表のレイアウト内での相対位置のほうが重要だと思うんで
> 可読性は相対表記のほうが上だと思う。
〜と思うってどこが根拠なんだよ... w
単なる君の意見でしょ
>>66
帳票って見たことないの?
結構スカスカだよ
例えばこんな奴
URLリンク(garage.plus.co.jp)
表の部分は元々複数出力するので VBA でループ回すから位置を変えるのは問題ない
ありがちなのは会社名とか見積もり番号の位置を変えたいとかで、他に影響することはあまりない

69:デフォルトの名無しさん
15/07/08 22:44:42.67 KchLLrX8.net
>>67
いや、それ言い出したらあなたの主張だって単なる個人の意見ですよ
たとえば帳票はスカスカだってのがあなたの意見なわけですが
そういうのじゃない表だってあるんですよ
ウチは科学技術系の職種でして
縦に時系列、横に計測項目(たとえば気温だったり風速だったり)で
複数の計測データをズラズラと並べるんですが
計測するパラメータが増えたり減ったりするんで表のレイアウトが変わるわけです。
そうすると一気に複数個所いじるのが当たり前になるわけです。
これってこっちの業界じゃあ結構当たり前のことで、
そういう時に絶対セル指定なんて使いづらくてやってらんないですよ。
あなたの主張が普遍的意義を持ってるならともかく、
こういう明らかな反例がある以上、
俺の根拠のみを私的意見だと言い切る資格はあなたにはないです。

70:デフォルトの名無しさん
15/07/08 23:06:29.04 u2i+4Vxj.net
Word VBAで [Shift+Enter] を押したとき、「Chr(11)」が入るみたいだけど、これって何なんですか?
アスキーコード一覧だとVertical Tabulation(垂直タブ)って書いてあるけど、
MSDNだと「タブ文字 (縦)。Microsoft Windows では使用できません。」って書かれててよく分からないんだけど、
Windows OSでは使わないけど、word(VBA)だと使ってる文字コードだよってこと?
wordもwindows版だから、Windowsでは使用できませんってのがよく分からないんですが・・
MSDN
URLリンク(msdn.microsoft.com)
アスキーコード一覧
URLリンク(e-words.jp)

71:デフォルトの名無しさん
15/07/08 23:43:30.20 t0H2tWbI.net
>>68
> いや、それ言い出したらあなたの主張だって単なる個人の意見ですよ
残念ながら違う
例えば...
> 基準の位置と Offset の値の二個読まないといけないだけでも直書きより不利
これには事実しか書いてない
俺の意見ではない
また...
> たとえば帳票はスカスカだってのがあなたの意見なわけですが
のようにスカスカに感じるかどうかは個人差があるから、実際の例を出してる
スカスカに思うかどうかは実物を見た人が決めればいい
> そういうのじゃない表だってあるんですよ
それはあると思うが、>>13 の帳票が...
> 計測するパラメータが増えたり減ったりするんで表のレイアウトが変わるわけです。
とは全然違うことぐらいはわかるだろ?
また、どっちの帳票が世の中に多いかもわかるだろ?
あと、時系列で入力するってことは複数の行を扱うんだろ?
>>67 にも書いたけどそう言う奴は普通 VBA のループで処理するから、元々絶対アドレス云々の話じゃないと思うんだが

72:デフォルトの名無しさん
15/07/09 00:51:54.46 FZuq59n/.net
>>70
>これには事実しか書いてない
それ以前の前提条件として絶対アドレスを取得する必要があるかどうか
絶対アドレスでの指定が有効かどうか
といった論点が抜けてますよ。
あとわたしがスカスカに対比して問題にしてるのは
つまり他の箇所を巻き込んで移動させる必要が
生じるかどうかを区別していってるのであって
見た目がどうこうの問題ではありません。
複数個所を同時に変更するかどうかです
さすがにそのぐらいは前後の文脈から汲み取っていただかないと困ります。
どうにもご自分の土俵のみで話を進めようとしてらっしゃるようですが
どちらが多いかはともかくとして
(実際のところ世の中に技術系の業種とそうでない業種がどれぐらいの割合で存在してるかなんて知りません)
それにしたって>>36でいわれるような「滅多にないケース」というほどではないでしょうから
それについての言及はあってしかるべきです。
念のため指摘しておきますが
パラメータの増減は列方向ですしループ云々とは関係ないですよ

73:デフォルトの名無しさん
15/07/09 08:21:56.29 n0IdOdTN.net
>>71
> それ以前の前提条件として絶対アドレスを取得する必要があるかどうか
だから相対の方が可読性が高いと言うなら、実例と根拠を出せばいいだけのこと
> 複数個所を同時に変更するかどうかです
個々の項目


74:フ細かい位置調整っ言うのは珍しくないよ > どうにもご自分の土俵のみで話を進めようとしてらっしゃるようですが 何回も書くけど、見積書等の帳票と君のところの Excel シートみたいなのどっちが多いと思う? > どちらが多いかはともかくとして 重要だけど不利だからスルーするってこと? w > (実際のところ世の中に技術系の業種とそうでない業種がどれぐらいの割合で存在してるかなんて知りません) 技術系の業種でも会社なら見積書とか納品書とかの帳票はあるんだよ > それにしたって>>36でいわれるような「滅多にないケース」というほどではないでしょうから そこまで言うなら、どれぐらいあるんだ? 根拠とともに示してくれよ > 念のため指摘しておきますが > パラメータの増減は列方向ですしループ云々とは関係ないですよ いや、少なくとも行方向はループで処理するから元々絶対アドレスでは無理だろ そう言う状況なら列側も相対にするのは珍しくない ただし、今回の話とは状況が違うからあまり参考にならないって話



75:デフォルトの名無しさん
15/07/09 08:53:31.52 FZuq59n/.net
>>72
>重要だけど不利だからスルーするってこと? w
>そこまで言うなら、どれぐらいあるんだ?
>根拠とともに示してくれよ
何でこっちにばかり立証責任があるんでしょうか?
あなたが具体的な根拠を示してくださいよ
データ処理系の表なんて日本中の研究機関その他で当たり前に動いてますんで
この辺はどっちが多いとか少ないとか証明するのは無理だと思います
ですので俺は遠慮しときます
>いや、少なくとも行方向はループで処理するから元々絶対アドレスでは無理だろ
データの頭にヘッダってのが付いてるときにループ開始行が変動するってのも割りとよくある話なんで
そこはやはりループ無関係ですよ
てかあなたこっち系の話知らないだけじゃないですか?
>ただし、今回の話とは状況が違うからあまり参考にならないって話
「今回の話」ってのを勝手に局限されても困るんですけど。
表の位置指定について話してたのに
その中で絶対アドレス指定が有利な状況ばかりに
限定して話を進めないでもらえますか?
それが多いとか少ないとかを論拠にするのは
あなたがきちんと証明してからにしてくださいね

76:デフォルトの名無しさん
15/07/09 10:18:34.30 SLWTmnwe.net
>>69
> Word VBAで [Shift+Enter] を押したとき、「Chr(11)」が入るみたいだけど、これって何なんですか?
どこでShift+Enterを入力して、それがChr(11)だと確認した方法を教えて。

77:デフォルトの名無しさん
15/07/09 13:00:12.23 n0IdOdTN.net
>>73
> あなたが具体的な根拠を示してくださいよ
書いてあるでしょ?
>> 基準の位置と Offset の値の二個読まないといけないだけでも直書きより不利
> データ処理系の表なんて日本中の研究機関その他で当たり前に動いてますんで
うん、その研究機関とかが日本中の企業より多いといいね w
> この辺はどっちが多いとか少ないとか証明するのは無理だと思います
君には無理だろうから遠慮するのは正解
企業統計とか研究機関の数って公表されてて、ざっくり研究機関が 8,000件、会社は 280万社ぐらいと言うことぐらいは覚えていても損はないよ
> データの頭にヘッダってのが付いてるときにループ開始行が変動するってのも割りとよくある話なんで
で?
普通に組んでいたら開始行を変えるだけでしょ?
> そこはやはりループ無関係ですよ
まさかベタ書きしてるの? w
> 「今回の話」ってのを勝手に局限されても困るんですけど。
元々、>>13 の話
コメント見る限りは注文書の入力用シートの話であることぐらいは理解しようよ

78:デフォルトの名無しさん
15/07/09 22:32:24.92 UwaB1poA.net
>>74
wordで文章の途中でShift+Enterを入力して、
文章を全部選択した状態で、
マクロで↓みたいなのやったら置換されました。
Sub ReplaceSample()
Selection.Text = Replace(Selection.Text, Chr(11), "改行")
End Sub

79:デフォルトの名無しさん
15/07/10 22:10:41.04 dJeHHxuR.net
>>69
分かる人いないですか?

80:デフォルトの名無しさん
15/07/10 22:14:19.91 I8IKrBJT.net
>>77
その文字がいらないんなら除去すれば?

81:デフォルトの名無しさん
15/07/11 02:27:12.83 lfRSVC1W.net
>>77
>これって何なんですか?
WordでSHIFT+Enterを入力したときに入る文字です
>MSDNだと
そのページはVBAのページではありません
VBScriptで定数vbVerticalTabが使えないと言ってるだけです

82:デフォルトの名無しさん
15/07/11 02:48:34.31 vE1M/d3c.net
>>79
VBAのページでも同じこと言ってるよ
URLリンク(msdn.microsoft.com)

83:デフォルトの名無しさん
15/07/11 03:32:44.18 lfRSVC1W.net
>>80
英語のページだとNot usefulって書いてあるのか
使ってはいけないと言う意味での「使えません」じゃないって事だな
まあ、実際にWordで使ってるんなら使えばいいんじゃね

84:デフォルトの名無しさん
15/07/11 07:20:42.92 SvdcMd32.net
>>69
なんなですか?
って言われても、VT のコードって言うしかない
そのコードをどのように解釈するかはアプリケーション次第

85:デフォルトの名無しさん
15/07/14 15:37:53.39 8d4NQeRS.net
>>75
もうやめとけ。
そいつは長いコード書いちゃいけないって俺は言っただろ。
そのうち事故るよ。

86:デフォルトの名無しさん
15/07/14 20:08:07.90 lKDNL4b3.net
>>81-82
んじゃあ「Chr(11)」はタブ文字 (縦)ってことで、それ以上でもそれ以下でもないということですね。
ありがとうございました。

87:デフォルトの名無しさん
15/07/27 22:27:48.03 FZObgN+M.net
MSOfficeのパワーポイント2013のVBAについて、助言をお願いします。
現在、フォーマット修正用に、色々と文字列置換のVBAを作っています。
しかし、shape単位で置換を行うのですが、shape内のフォーマットが全て最初の文字のものになってしまいます。
ctrl+Hキーでできる置換のように、フォーマットを変えずに文字だけ置換する方法があれば教えて下さい。
よろしくお願いします。

88:85
15/07/29 22:12:54.99 JQYDYy2G.net
すいません、勘違いがありました。問題なく出来ました。

89:デフォルトの名無しさん
15/08/04 13:20:19.14 Xu3GeQZL.net
OWCのグラフで値が空のとこを非表示にするにはどうしたらいいですか?

90:デフォルトの名無しさん
15/08/18 10:58:33.73 34FW6E1T.net
>>87
値が空のデータを削除したら?

91:デフォルトの名無しさん
15/08/18 16:30:28.51 1oq6H4HA.net
PowerPointでpptxを開いてPDFで保存するvbscriptを
書いたんですが発行中ダイアログが出てしまいます。
これを出ないようにする方法はないでしょうか?

92:デフォルトの名無しさん
15/08/19 17:21:07.83 leFwNaH1.net
>>89
ここVBAのスレ・・・

93:デフォルトの名無しさん
15/08/19 21:37:19.12 ojYTqzwH.net
VBScript≠VBA

94:デフォルトの名無しさん
15/08/22 05:31:09.55 dBcaDCdy.net
VBScriptのスレって池沼みたいな変なコテハンがいて関わりたくないのよね

95:デフォルトの名無しさん
15/08/30 22:49:46.81 PtUjiQ8D.net
>>89
試しにパワポにマクロでPDF出力を作ってみましたが
別に何も出ませんでしたよ?
Office2013ですけど。

96:デフォルトの名無しさん
15/09/03 18:14:14.52 oCFXB/C6.net
>>93
このソースだと出てしまいます。何か違いますでしょうか?
Option Explicit
Dim inFilePath
inFilePath = Wscript.Arguments(0)
Dim outFilePath
outFilePath = Wscript.Arguments(1)
Dim objPowerPoint
Set objPowerPoint = CreateObject("PowerPoint.Application")
dim pre
set pre = objPowerPoint.Presentations.Open(inFilePath, false, false, false)
dim wdFormatPDF
wdFormatPDF = 32
call pre.SaveAs(outFilePath, wdFormatPDF )
objPowerPoint.Quit()
Set objPowerPoint = Nothing

97:デフォルトの名無しさん
15/09/03 20:46:42.16 Hlg8Zb4Z.net
>>94
どうもです
こちらへ誘導したExcel総合相談所 119の171です
私パワポ持ってないんで確認できないんですけど、組み込み定数の違いってなにか関係ないですかね?
■[Tips]PowerPoint 2010 のPDF変換機能を利用して、Powerpointを起動せずにPDFに変換するVBSスクリプト
URLリンク(d.hatena.ne.jp)
をみると
パワポのファイルフォーマットでPDFをあらわすのは"ppSaveAsPDF"(=32)で、
貴方のコード中の"wdFormatPDF"(=17)はワードのファイルフォーマットでPDFをあらわすものみたいですよ
参考までにマイクロソフトのリファレンスもどうぞ
PpSaveAsFileType 列挙 (PowerPoint)
URLリンク(msdn.microsoft.com)
Wdsaveformat クラスの列挙 (Word)(機械翻訳)
URLリンク(msdn.microsoft.com)
ぜんぜん見当違いだったらごめんなさい

98:95
15/09/04 09:05:49.13 RG/2/qam.net
>>94
よくみたら組み込み定数じゃなくて変数で宣言してましたね
見当違い以前のはなしでした
本当にごめんなさい

99:デフォルトの名無しさん
15/09/05 19:56:12.09 852S1qdl.net
>>94
93ですけど、そのソースをコピペしてコマンドプロンプトから
実行してみましたが、家の環境(Win10)では普通にPDFできますよ?
ダイアログも出ませんでしたよ。
実行した時はスライド1枚の軽いPPTでやったのですが、
94さんは、もしかしたら結構スライド数多いPPTだから出るんですかね?

100:デフォルトの名無しさん
15/09/05 20:01:53.43 852S1qdl.net
出てるダイアログが再現できないので、わからないのだけれども
↓のプロパティでどうにもならないんだとしたら、諦めるしかないのかも。
Application.DisplayAlerts
URLリンク(msdn.microsoft.com)(v=office.15).aspx

101:デフォルトの名無しさん
15/09/07 12:54:20.03 NloI4YQK.net
>>97
スライド数は20くらいでしょうか。
>>98
試してみましたが残念ながら出てしまいました。
困りました。

102:デフォルトの名無しさん
15/09/08 02:01:39.32 m7aBfM8f.net
Windows10でie操作のマクロって動くのですか?
edgeは互換性あるわけでは無いですよね。
別にインストールするのですしょうか。
これでクリエイトするオブジェクトです。
CreateObject("InternetExplorer.Application")

103:デフォルトの名無しさん
15/09/08 12:06:16.04 9vjtcLlt.net
Windows10でもieは入っているようです
URLリンク(simply-assi.com)
なら 操作は可能でないかな?
Windows10持ってるなら テストしてみるべし
自分は Win8.1だから無理だけど

104:デフォルトの名無しさん
15/09/08 14:37:39.47 m7aBfM8f.net
>>101
自分も実機がないのよね。
ieが残ってるいうのは聞いてるんだけど、7や8からのアップデートでも、10のクリーンインストールでも何の設定もしないでも動くのかなと。
テストしてる人とかいないかな?

105:デフォルトの名無しさん
15/09/12 05:23:11.91 dQMUA4G2.net
仮想用に買った10のUSBが今日届くから環境作り次第ObjIE試してみますん

106:デフォルトの名無しさん
15/10/07 06:57:36.90 qdqRCjiZ.net
受ける会社大丈夫?
下記の条件が全て当てはまる会社にご注意下さい。
・IT系 in tokyo
・「社名 労基」でググると過去の2chスレが出てくる
・転職会議で2.5点

107:デフォルトの名無しさん
15/10/12 22:50:34.44 Xy8ebFp6.net
今、こんなグラフがあるんですが、
URLリンク(i.imgur.com)
これを↓のようにするにはどのようにしたらいいんでしょうか?
URLリンク(i.imgur.com)

108:デフォルトの名無しさん
15/10/12 23:30:39.75 DYP6asIc.net
>>105
何がしたいの?
回転させたいの?

109:デフォルトの名無しさん
15/10/12 23:35:13.73 oCa7NkmO.net
>>105
もう既に出来ているんじゃないか?

110:デフォルトの名無しさん
15/10/12 23:36:26.71 Xy8ebFp6.net
>>106
縦軸と横軸を入れ替えたいのです。
画像として90度回転させたいわけではないのです。

111:デフォルトの名無しさん
15/10/12 23:40:07.79 Xy8ebFp6.net
>>107
>>105は1枚めの画像を左に90度回転させ2枚めの画像としています。
現在、エクセルで1枚目のようなグラフがあるのですが、
縦軸と横軸を入れ替えたような(2枚目画像のような)グラフをエクセルで作りたいのです。
自分なりにいろいろ試したのですができませんでした。

112:デフォルトの名無しさん
15/10/12 23:41:53.96 oCa7NkmO.net
>>108
入れ替えたグラフを既に作っているじゃないですか?それで完成しているのでは?

113:デフォルトの名無しさん
15/10/13 00:02:52.88 X9js2iKE.net
>>110
ああ、ごめんなさい。
>>105の2枚目の画像は1枚目の画像を画像ビューワーソフトで左回転させたものなんです。
2枚目のようなグラフをエクセルで作成したいんです。
(今は1枚目のようなグラフをエクセルで作った段階です)

114:デフォルトの名無しさん
15/10/13 15:10:52.88 v0mnZW8d.net
>>111
私も、できてると思うんですが?

115:105
15/10/13 18:10:14.52 X9js2iKE.net
改めて質問させてください。
エクセルで↓のようなグラフがあります。
URLリンク(i.imgur.com)
このグラフの縦軸と横軸を入れ替えたグラフを(エクセルで)作成したいのですがやり方がわかりません。
作成したいグラフのイメージは↓のようなものです(この画像は画像ビューワーで作成したものです)
URLリンク(i.imgur.com)
わかりづらくてすみません。

116:デフォルトの名無しさん
15/10/13 18:27:38.73 jBFoqp2r.net
>>113
Excel グラフ 回転
でググるとやり方でてくるけど、これじゃ駄目?

117:105
15/10/13 21:52:53.15 X9js2iKE.net
>>114
今エクセルを試せる環境ではないので検索してみた結果を眺めたところ、
線グラフや面グラフの縦軸と横軸の反転は非常に難しそうな印象を受けました。
難しいというか無理やりというか。
そこまでの労力をかけないと望む結果が得られないということはなんとなくわかりました。
そうであるならば現状を受け入れるしかないのかと思っております。
今回は諦めます。ありがとうございました。

118:デフォルトの名無しさん
15/10/13 22:05:15.03 v0mnZW8d.net
>>115
散布図でやってみるとか?

119:デフォルトの名無しさん
15/10/13 23:07:15.46 /7qkRhU+.net
>>113
Excelの質問かよ…
じゃあなんでExcelの質問スレじゃなくてここで質問するんだ
後出し条件出してくんなカス

120:デフォルトの名無しさん
15/10/14 00:34:55.63 psNeOyD5.net
>>117
あ〜〜VBA質問スレか・・・
すいません誤爆というかなんというか全く気づかず・・・

121:デフォルトの名無しさん
15/10/27 14:53:17.89 EXphczgr.net
某サイトへのアクセスを1日1回、定時に行うためにIE操作を行うマクロを作っています。
必要な情報を取得した最後にそのサイトをログアウトしてIEを閉じたいのですが、ログアウトをしたときにJavascriptから?のログアウトしましたとの情報メッセージが表示されます。
ググッて調べたところ、以下の様な感じで閉じられるとあったのですが、SendMessageだけがうまくいきません。
ハンドルの値は入っています。
IE11を使っていますが、仕様が変わったのでしょうか?(Windows Updateでの最新)
このメッセージを閉じないとその後の閉じるためのVBAは進んでいるものの、実際の動作をしてくれなくて困っています。
(手動でメッセージを閉じたらその後のIEを閉じる操作が終わった状態にまで一気に進む)
わかる方いましたら教えて下さい。

Const WM_COMMAND As Long = &H111
hWnd = FindWindow("#32770", "Web ページからのメッセージ")
If hWnd <> 0 Then
Rtn = SendMessage(hWnd, WM_COMMAND, vbOK, 0)
End If

122:デフォルトの名無しさん
15/10/28 14:22:04.16 Dygk5TrA.net
>>119
ハンドル違うんじゃね?

123:119
15/10/29 03:59:21.10 l3n8K/Sw.net
>>120
値は取得できてます。
これが本当にメッセージのハンドルなのか調べ方を知らないので合ってるかは分かりません。
FindWindowも間違ってないと思うのですが、こちらも調べてみます。

124:デフォルトの名無しさん
15/10/29 21:40:45.69 Q2L1bFVS.net
WM_COMMANDの右2つの引数の指定の仕方が間違ってるのと
有効なウィンドウハンドルかどうかはIsWindowで取得できる

125:119
15/10/30 00:47:33.04 ZHFQ9n4z.net
Rtn = SendMessage(hWnd, WM_COMMAND, 2, 0)
でうまく閉じてくれました。
>>122さんレスありがとうございます。

126:デフォルトの名無しさん
15/11/03 17:46:00.00 fVYiq8DO.net
質問が2つあります(長文すみませんm(_ _)m
○1点目:vbaを用いた自動化でdiv要素だけのボタンを押す方法
作業->ウェブのあるサービスにログインし、一定の操作をしてからログアウトする
問題->idとpassの入力はできたが、ボタンが押せない
構造的には下記アドレスのログインフォームと似ていて
URLリンク(codepen.io)
上記例の<button class="btn">Login</button>のような
button要素がなく、div要素のみで設計されています
javascript関係かと思い.fireEventや.Script.setTimeoutを調べてみたのですが
div要素には実行されるjavascriptやそのfunctionなどは何も無く、class名だけ書かれています
○2点目:ieオブジェクトのdocumentがローカルウインドウから参照出来ない
上の質問と関係し、ieオブジェクトのdocumentの中身を見ようとしたのですが
document以下が<変数なし>となっており参照出来ません
調べるとskydriveのadd-onを入れる、shellから持ってくる等情報がありますが、いずれでも解決出来ませんでした
なお<変数なし>とは出ていますが、debug.print ie.document.titleなどとすると中身は出力されます
環境
Windows8.1 pro 64bit
excel 2013 32bit:参照設定MS Internet Controls/MS HTML Object Library/OLE Automation
         Visual Basic For Applications/ MS Excel 15.0 Object Library/ MS office 15.0 Object Library
ie 11 64bit(32bitでも変わらず)

127:デフォルトの名無しさん
15/11/03 19:21:14.85 elW9O1dh.net
パワポでソフトトーク使いたいんだけど『開発』タブ出すところまではできてもVBAでマクロを記述〜っていうのができない。インポートするファイルの在り処か作成法を情弱にも理解できるように教えてほしい…

128:デフォルトの名無しさん
15/11/03 19:22:51.42 elW9O1dh.net
参考にしてるのはこれ。
パワポも2ちゃんも初心者でごめんなさい…
URLリンク(needtec.exblog.jp)

129:デフォルトの名無しさん
15/11/03 19:41:17.58 fVYiq8DO.net
>>125
Alt + F11

130:デフォルトの名無しさん
15/11/04 15:38:11.36 DjYXAcy0.net
127
Visual Basicのウィンドウは出てきたしテキストもコピペしたけど
wavが自分のファイルに保存されない。
マクロ実行しても何も起こらずウィンドウが閉じるだけ。パワポのファイルにも音源は見当たらない。

131:デフォルトの名無しさん
15/11/04 15:56:19.21 Y61Iie1f.net
>>124
1点目はソースがないとなんとも。
2点目はHTMLDocumentあたりで定義したオブジェクト(変数?)にSetしてやれば参照できるよ。
理由はしらんがie.Documentみたいなままだと参照できない。

132:デフォルトの名無しさん
15/11/04 21:25:56.71 NpxeN+NQ.net
>>128
何をしてどうなったのか具体的に書いてもらわないとわかりません
パワポにマクロを組み込んで、softTalkのパスを指定して
スライドのノートに文章を書いて、マクロ実行、までは出来たという理解でOK?

133:デフォルトの名無しさん
15/11/04 21:55:38.97 NpxeN+NQ.net
>>129
レスありがとうございます
2点目はアドバイスの通り、set objDoc = objIe.Document.allとかしたら中身読めました。ありがとうございます!
1点目は情報少なくて申し訳ないです
業務用なので詳細は一部フェイク入れますが、htmlにはinputタグがあるだけで
<input id="id" class="input-text" type="text" ime-mode="disabled"></input>
はあるのですが、idとpassを入れた後に押すボタンが
<div class="btn-control-outer">
<div class="btn-control-inner">
<div class="btn-control-message">OK</div>
</div></div>
というタグだけで作られています
(なおこのタグはjsで動的に作られているようで、IEの要素チェックで確認したものをコピペしています。ソースだとこのタグがありません)
リンク要素のように.clickが出来るものがなく、setTimeOutするにも、タグの中にjavascript:alert();のような記述も見当たりません
トップページのソースでjsを外部参照していたので、改行がないjs(minify化?)ファイルを読み解いていますが
上のdivタグとどうに関係しているのかわからず詰まっている状態です。

134:デフォルトの名無しさん
15/11/05 10:30:26.20 HwmEl5Ub.net
>>131
div ボタンでぐぐったらこんなサイトがあって
URLリンク(lilia-study.com)
ここのサンプルが言っているdivのみのボタンかと思う。
URLリンク(lilia-study.com)
For Each tag In ie.Document.getElementsByTagName("div")
Next

135:デフォルトの名無しさん
15/11/05 10:32:32.99 HwmEl5Ub.net
途中だった
For Each tag In ie.Document.getElementsByTagName("div")
if tag.ID = "aaa" Then
tag.Click
end if
Next
でクリックできた。
そちらのサイトでも動くんでないか?

136:デフォルトの名無しさん
15/11/05 21:56:35.78 CDrat58l.net
パワーポイントで、すべてのシートについて青い文字だけを黒い文字に変換するようなマクロを
作っていただけないでしょうか。

137:デフォルトの名無しさん
15/11/05 23:31:33.31 5frd9spB.net
>>132
アドバイスいただいた方法で出来ました!
div要素をclick出来るとは思っておりませんでした。
本当にありがとうございます。
その後の処理も上で>>119さんのやりとりから調べて目的とする動作が出来ました
合わせて感謝します。

138:デフォルトの名無しさん
15/11/05 23:51:53.10 HwmEl5Ub.net
>>135
こちらもdivがボタンにできるのを初めて知ったので勉強になったよ。
ちなみに119もオレw

139:124
15/11/06 07:09:49.59 I5IXDGW5.net
!Σ(・ω・ノ)ノ
お礼伝わり良かったですw

140:デフォルトの名無しさん
15/11/08 22:46:51.63 yp780VFR.net
access2013でフォームからの入力期間の金額を集計してレポート作成をしようとしています。
vbaでレポートボタンを押下した動作と同じコードは存在しますでしょうか。

141:デフォルトの名無しさん
15/11/09 00:38:10.22 lpQ26d6h.net
レポートボタンってのが何の事かわからんが DoCmd.OpenReport使えとかそういう事か?
とりあえずACCESS VBAはそれ用のスレがあるからそっちで聞け

142:デフォルトの名無しさん
15/11/09 02:05:47.54 rGXYqJ1u.net
>>134
すべてのシートの、
すべてのテキストの文字色を、一つずつ調べていき、
(または、1文字ずつ調べながら、)
もしそれが青なら、黒に変更する

143:デフォルトの名無しさん
16/02/17 15:13:29.51 cyifogYg.net
パワポのVBAでお願いします。
ファイル→情報→メディアの圧縮
わVBAからやりたいのですがどのオブジェクトのどのメソッドからやればいいのかわかる方いたら教えて下さい。
音声ファイルの圧縮がやりたいのです。

144:デフォルトの名無しさん
16/02/24 21:04:30.98 faCUrUaa.net
141507
140712
140715
141512
141207
141215
140708
140709
141508
1408


145:07 140703 141509 140815 141503 141208 140907 140315 141209 140915 141203 競馬の三連単の買い目がこのようにある時、マークシート記入枚数を減らすために 14-7,12,15-3,7,8,9,12,15 14-8,9-7,15 140315 とまとめたいのですが、どのように処理すればよいでしょうか? いずれは金額も考慮したいと考えていますが、現段階では難易度を下げるために同一金額としてください。 同じ理由でここでは頭を固定で例を作成させていただきました。 よろしくお願いします。



146:デフォルトの名無しさん
16/02/24 22:34:57.70 7wWguvAi.net
>>142
VBA関係ないじゃん
書き込むスレ間違ってるよ

147:デフォルトの名無しさん
16/02/24 22:39:06.06 faCUrUaa.net
>>143
他にそれらしいスレがみつからなかったことと、この買い目を出す処理をVBAで行っているのでここで聞いたのですが
適切なスレがありましたら移動しますので、誘導願います

148:デフォルトの名無しさん
16/02/24 23:05:03.48 7wWguvAi.net
>>144
ごめん、>>1 読む限りだとこのスレで問題なさそうね…
すまんかった

149:デフォルトの名無しさん
16/02/24 23:07:19.07 gEXn5/E8.net
でもEXCEL VBAに行ったほういい気がする
どうせEXCELだろ

150:デフォルトの名無しさん
16/02/25 00:31:32.38 lxjkiQUf.net
>>142
そういうのはアルゴリズム系スレの方が受けがいいかと
あんま言語関係ないし
データ構造,アルゴリズム,デザインパターン総合スレ 2
スレリンク(tech板)

151:142
16/02/27 08:28:02.19 SRIIhbK2.net
>>147
了解

152:デフォルトの名無しさん
16/03/07 19:56:57.79 IDkrJnKk.net
ミリ秒より短い時間の計測ってどうやるの?

153:デフォルトの名無しさん
16/03/07 20:49:02.27 UbdDFkp+.net
>>149
何を計測したいの?

154:デフォルトの名無しさん
16/03/09 17:27:24.27 ISN2ur/+.net
というかVBA マイクロ秒でぐぐったりしたの?

155:デフォルトの名無しさん
16/03/18 00:50:59.88 QavJ4QpP.net
EXCELのVBAでインデントされたとりあえず下のようなXMLを作成したく
URLリンク(blogs.yahoo.co.jp)
を参考に作成してるのですが、うまく孫要素が作成できません。
どうすれば孫要素が作成できるのでしょうか。ご教示お願いします。
また何と調べればいいのかを教えていただければ幸いです。
環境 windows7  64bit と32bit両方
 Excel 2010 64bit と32bit 両方
作成したいXML(括弧は半角だとうまく書き込めないみたいなので全角にしてます)

<?xml version="1.0" encoding="UTF-16" standalone="yes"?>
<ROOT>
<TITTLE>DQ5</TITTLE>
<CHARACTER>
<PERSON>
<NAME>パパス</NAME>
<HOBBY>女装</HOBBY>
<COMMENT>ぬわーーっっ!!</COMMENT>
</PERSON>
<PERSON>
<NAME>ゲマ</NAME>
<HOBBY>メラミ</HOBBY>
<COMMENT>ほっほっほっほっ。子を思う親の気持ちは いつみても いいものですね。</COMMENT>
</PERSON>
</CHARACTER>
</ROOT>

156:デフォルトの名無しさん
16/03/18 01:48:30.33 emFx7ejn.net
>>152
vba xml 生成 とかでググるといくらでもやり方はヒットすると思うけど
具体的にどんなコードのどこで行き詰まってるのか書いてくれないとアドバイスしようがない

157:デフォルトの名無しさん
16/03/18 11:47:02.11 QavJ4QpP.net
<CHARACTER>が</CHARACTER>で作成されてしまい、閉じてくれません。また<PERSON>などが孫要素になってくれません。
コードはこんな感じです。
URLリンク(pastebin.com)

作成されるXMLは↓です。
<?xml version="1.0" encoding="UTF-16" standalone="yes"?>
<ROOT>
<TITTLE>DQ5</TITTLE>
<CHARACTER/>
<PERSON/>
<NAME>パパス</NAME>
<HOBBY>女装</HOBBY>
<COMMENT>ぬわーーっっ!!</COMMENT>
<PERSON/>
<NAME>ゲマ</NAME>
<HOBBY>メラミ</HOBBY>
<COMMENT>ほっほっほっほっ。子を思う親の気持ちは いつみても いいものですね。</COMMENT>
</ROOT>

158:デフォルトの名無しさん
16/03/18 21:10:32.76 Sdu3bujA.net
>>154
> 'ノードとして子ども・孫の要素を追加
>Set elem2 = rootelem.appendChild(myxml.createElement("CHARACTER"))
> Set elem2 = rootelem.appendChild(myxml.createElement("PERSON"))

> 'ノードとしてひ孫の要素を追加
>Set node = rootelem.appendChild(myxml.createNode("element", "NAME", ""))
> node.Text = "パパス"
rootelemにしか子供追加してないから、孫、ひ孫が生成されないのは当然な気がする
追加した子要素に子供を追加してやらなくちゃ…
試してないけどこんな感じ?
'ノードとして子ども・孫の要素を追加
Set elem2 = rootelem.appendChild(myxml.createElement("CHARACTER"))
Set elem2 = elem2.appendChild(myxml.createElement("PERSON"))
'ノードとしてひ孫の要素を追加
Set node = elem2.appendChild(myxml.createNode("element", "NAME", ""))
node.Text = "パパス"

159:デフォルトの名無しさん
16/03/19 11:15:23.76 LxdobWB2.net
ThisWorkbook.Save
で「指定したディメンションは、このグラフの種類では無効です。」のエラー発生。
エラーが出るときと出ないときがある。
VBAでグラフを操作している部分もあるが、それとは無関係と思われるSaveでこのエラーに戸惑っています。
↓このサイトで、SaveAsで存在しないパスを指定し同様のエラーが出た事例は見つかりましたが私はパス指定していません。
URLリンク(yaplog.jp)
エラー回避する方法を教えて下さい。

160:156
16/03/19 11:26:07.75 LxdobWB2.net
>>156はエクセルの話です
win7, office2010

161:デフォルトの名無しさん
16/03/20 06:56:26.93 XolQD74Z.net
どなたか>>156わかりませんか?


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

285日前に更新/325 KB
担当:undef