!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
スレ立ての際は一行目に
!extend:checked:vvvvv:1000:512
と入れてスレ立てして下さい
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※前スレ
Excel VBA 質問スレ Part48
http://mevius.2ch.net/test/read.cgi/tech/1494890685/
※関連スレ
VBAなんでも質問スレ Part2
http://mevius.2ch.net/test/read.cgi/tech/1432173164/
Access VBA 質問スレ Part1
http://mevius.2ch.net/test/read.cgi/tech/1328536426/
Excel総合相談所 126
https://mevius.2ch.net/test/read.cgi/bsoft/1496487719/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
探検
Excel VBA 質問スレ Part49©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ bb2e-8SzA)
2017/06/26(月) 02:15:14.60ID:T3ylemnb0557デフォルトの名無しさん (ワッチョイ bf6d-E/h9)
2017/07/26(水) 19:53:37.44ID:rbCQuCda0558デフォルトの名無しさん (ワッチョイ a791-8s/R)
2017/07/26(水) 19:56:29.43ID:W1HWCg900 >>553
オブジェクト指向言語は
オブジェクト指向設計したものを
そのまま実装し易い言語じゃないかな
言語の概念でもあると思うけどな
オブジェクト指向言語じゃなくても実装できるのは確かだけど
それならVBAでもオブジェクト指向設計を実装できるんじゃないかな
オブジェクト指向言語は
オブジェクト指向設計したものを
そのまま実装し易い言語じゃないかな
言語の概念でもあると思うけどな
オブジェクト指向言語じゃなくても実装できるのは確かだけど
それならVBAでもオブジェクト指向設計を実装できるんじゃないかな
559デフォルトの名無しさん (スップ Sdff-AsiQ)
2017/07/26(水) 19:57:08.36ID:ecs8OXuXd560デフォルトの名無しさん (ワッチョイ bf6d-1kH5)
2017/07/26(水) 20:08:20.48ID:rbCQuCda0561デフォルトの名無しさん (ワッチョイ a791-8s/R)
2017/07/26(水) 20:09:21.78ID:W1HWCg900562デフォルトの名無しさん (ドコグロ MM9f-efHF)
2017/07/26(水) 20:11:22.90ID:pjdGyN9QM563デフォルトの名無しさん (ドコグロ MM9f-efHF)
2017/07/26(水) 20:12:48.62ID:pjdGyN9QM564デフォルトの名無しさん (ドコグロ MM9f-efHF)
2017/07/26(水) 20:15:20.68ID:pjdGyN9QM565デフォルトの名無しさん (ワッチョイ a791-8s/R)
2017/07/26(水) 20:15:48.34ID:W1HWCg900 状態を持つ必要がある入出力関係が
独立に多数ある場合は
クラスを使うと比較的実装が簡単になるのかな?
独立に多数ある場合は
クラスを使うと比較的実装が簡単になるのかな?
566デフォルトの名無しさん (ワッチョイ bf6d-1kH5)
2017/07/26(水) 20:17:56.75ID:rbCQuCda0 >>563
ログはlogシート一つ、3列
時間 / タイプ / 内容
7/26 20:00 log 作業開始
7/26 20:05 success 作業成功
7/26 20:07 error err.discriptionの内容
7/26 20:10 log 作業終了
で、書き込む時に毎回A列の最終行を取得し、そこに記録してる
覚える必要はないと思う
ログはlogシート一つ、3列
時間 / タイプ / 内容
7/26 20:00 log 作業開始
7/26 20:05 success 作業成功
7/26 20:07 error err.discriptionの内容
7/26 20:10 log 作業終了
で、書き込む時に毎回A列の最終行を取得し、そこに記録してる
覚える必要はないと思う
567デフォルトの名無しさん (ワッチョイ e711-MZAo)
2017/07/26(水) 20:24:18.05ID:+NZ2Dbuu0 表の検索とかsqlでやる人もいるんだろうけど自分としてはクラスにしちゃうのがしっくりくるわ
配列の操作もクラスにしてると楽
あと、似たような処理で操作する対象が違うメソッドなんかは同じ名前にしても問題ないところとかも地味に便利だよ
関数だと命名に困ることがよくある
配列の操作もクラスにしてると楽
あと、似たような処理で操作する対象が違うメソッドなんかは同じ名前にしても問題ないところとかも地味に便利だよ
関数だと命名に困ることがよくある
568デフォルトの名無しさん (スップ Sdff-AsiQ)
2017/07/26(水) 20:30:27.76ID:ecs8OXuXd >>560
さあ?いろいろあるでしょ
数値を放り込むとその度に回数をカウントアップし、最大値・最小値、合計、時刻を記録する、とか。
これくらいだったらワークシートでもできるけど、そういう対象が数多くなるとオブジェクト配列でやりたくなる。
どのワークシートのどこに?とか考える必要なくなるしエクセル以外のOfficeでも使えるし。
さあ?いろいろあるでしょ
数値を放り込むとその度に回数をカウントアップし、最大値・最小値、合計、時刻を記録する、とか。
これくらいだったらワークシートでもできるけど、そういう対象が数多くなるとオブジェクト配列でやりたくなる。
どのワークシートのどこに?とか考える必要なくなるしエクセル以外のOfficeでも使えるし。
569デフォルトの名無しさん (ワッチョイ a791-8s/R)
2017/07/26(水) 20:51:20.79ID:W1HWCg900 >>564
一般的な形では難しいかもしれないけど
サブクラスに相当する関数から
スーパークラスに相当する関数を呼べばいいんじゃね?
逆にスーパークラスに相当する関数に
スイッチみたいな引数を付けて
サブクラスに相当する関数に分岐するとか
一般的な形では難しいかもしれないけど
サブクラスに相当する関数から
スーパークラスに相当する関数を呼べばいいんじゃね?
逆にスーパークラスに相当する関数に
スイッチみたいな引数を付けて
サブクラスに相当する関数に分岐するとか
570デフォルトの名無しさん (ワッチョイ df6f-QK4i)
2017/07/26(水) 21:00:52.52ID:7P86XL9W0571デフォルトの名無しさん (ワッチョイ 473d-pqVL)
2017/07/26(水) 21:20:54.79ID:19gyZHTT0 >>558
VBAで出来ないと思っているならオブジェクト指向を何か勘違いしているからオブジェクト指向設計の本を読むといいよ。
他の言語みたいな書き方が出来ないだけで、VBAでもオブジェクト指向プログラミングは普通に出来るから。
VBAで出来ないと思っているならオブジェクト指向を何か勘違いしているからオブジェクト指向設計の本を読むといいよ。
他の言語みたいな書き方が出来ないだけで、VBAでもオブジェクト指向プログラミングは普通に出来るから。
572デフォルトの名無しさん (ワッチョイ e711-MZAo)
2017/07/26(水) 21:34:48.38ID:+NZ2Dbuu0 >>570
まあ、あんまり大きなデータは扱わんからな
別に検索する形式が決まってるなら内部的にsqlで値抜き出してもいいわけだし
データの塊をオブジェクトとして扱っちゃったほうが何かまとまり感あってしっくり来るって感じかな
まあ、あんまり大きなデータは扱わんからな
別に検索する形式が決まってるなら内部的にsqlで値抜き出してもいいわけだし
データの塊をオブジェクトとして扱っちゃったほうが何かまとまり感あってしっくり来るって感じかな
573デフォルトの名無しさん (ワッチョイ e711-MZAo)
2017/07/26(水) 21:36:24.28ID:+NZ2Dbuu0574デフォルトの名無しさん (ワッチョイ dfaa-E/h9)
2017/07/26(水) 21:54:31.59ID:kYPrva630 >>564
AddressOf あるし使おうと思えば使える
AddressOf あるし使おうと思えば使える
575デフォルトの名無しさん (ワッチョイ 473d-pqVL)
2017/07/26(水) 22:02:04.56ID:19gyZHTT0576デフォルトの名無しさん (ワッチョイ df11-efHF)
2017/07/26(水) 22:05:43.16ID:gz+R3HSW0 >>569
さすがにそれはないわ...
さすがにそれはないわ...
577デフォルトの名無しさん (ワッチョイ df11-efHF)
2017/07/26(水) 22:09:54.70ID:gz+R3HSW0 >>574
アドレス取るのはいいけどどうやって使うつもり?
アドレス取るのはいいけどどうやって使うつもり?
578デフォルトの名無しさん (ワッチョイ dfaa-E/h9)
2017/07/26(水) 22:32:43.94ID:kYPrva630 >>577
ごめんVBAから直接には使えなかった
ごめんVBAから直接には使えなかった
579デフォルトの名無しさん (ワッチョイ bf23-FdGq)
2017/07/26(水) 23:08:50.27ID:+wB1yzpw0580デフォルトの名無しさん (ワッチョイ bf23-FdGq)
2017/07/26(水) 23:11:34.30ID:+wB1yzpw0 vbaでオブジェクト指向とか中級者がやることだな。
初心者よりタチ悪いこともある。
初心者よりタチ悪いこともある。
581デフォルトの名無しさん (ワッチョイ dfaa-E/h9)
2017/07/26(水) 23:58:17.75ID:kYPrva630 上級者はなにするんだ?
582デフォルトの名無しさん (ワッチョイ db91-ntdb)
2017/07/27(木) 00:50:19.96ID:Gu8HEug70583デフォルトの名無しさん (ワッチョイ db91-ntdb)
2017/07/27(木) 01:05:44.74ID:Gu8HEug70 >>571
VBAと言う言語にクラスとかオブジェクト指向の概念が入っている
つまりオブジェクト指向の概念は言語にもつながる
と言う主張
一方でオブジェクト指向は設計にのみ関わる概念と言う主張もある
オブジェクト指向の概念を取り入れた言語でオブジェクト指向設計したものを実現するのと
オブジェクト指向の概念がない言語で実現するのでは
生産性とかに差が生じるだろう
VBAと言う言語にクラスとかオブジェクト指向の概念が入っている
つまりオブジェクト指向の概念は言語にもつながる
と言う主張
一方でオブジェクト指向は設計にのみ関わる概念と言う主張もある
オブジェクト指向の概念を取り入れた言語でオブジェクト指向設計したものを実現するのと
オブジェクト指向の概念がない言語で実現するのでは
生産性とかに差が生じるだろう
584デフォルトの名無しさん (ワッチョイ 2623-toSE)
2017/07/27(木) 01:36:25.07ID:Ddw23w1u0585デフォルトの名無しさん (ワッチョイ db91-ntdb)
2017/07/27(木) 01:54:44.40ID:Gu8HEug70586l (ワッチョイ 0fcf-GNib)
2017/07/27(木) 02:24:19.55ID:lqCZB24a0 Youtuberヒカルが月収を明らかに!!おはよう朝日です出演
https://www.youtube.com/watch?v=RLZGrqQnnZc
第1回案件王ランキング!YouTuberで1番稼いでるのは誰だ!
https://www.youtube.com/watch?v=asF2wQ2xhjY&t=61s
ユーチューバーの儲けのカラクリを徹底検証!
https://www.youtube.com/watch?v=FUSb4erJSXE&t=504s
【給料公開】チャンネル登録者4万人突破記念!YouTuberの月収公開!
https://www.youtube.com/watch?v=Y7DAQ0RKilM&t=326s
誰も言わないなら俺がYouTuberのギャラ相場を教えます
https://www.youtube.com/watch?v=E4q-vaQh2EQ&t=118s
YouTuberになりたいのは馬鹿じゃない!YouTuberになる方法
https://www.youtube.com/watch?v=Fr0WXXZRMSQ
最高月収5000万円だとさ。年収じゃなくて「月収」な
おまえらもyoutubeに動画投稿したほうがいい
顔出したくないならラファエルみたいに仮面かぶればいい
手っ取り早く視聴数稼ぐには有名ユーチューバーへの物申す系動画がオススメ
https://www.youtube.com/watch?v=RLZGrqQnnZc
第1回案件王ランキング!YouTuberで1番稼いでるのは誰だ!
https://www.youtube.com/watch?v=asF2wQ2xhjY&t=61s
ユーチューバーの儲けのカラクリを徹底検証!
https://www.youtube.com/watch?v=FUSb4erJSXE&t=504s
【給料公開】チャンネル登録者4万人突破記念!YouTuberの月収公開!
https://www.youtube.com/watch?v=Y7DAQ0RKilM&t=326s
誰も言わないなら俺がYouTuberのギャラ相場を教えます
https://www.youtube.com/watch?v=E4q-vaQh2EQ&t=118s
YouTuberになりたいのは馬鹿じゃない!YouTuberになる方法
https://www.youtube.com/watch?v=Fr0WXXZRMSQ
最高月収5000万円だとさ。年収じゃなくて「月収」な
おまえらもyoutubeに動画投稿したほうがいい
顔出したくないならラファエルみたいに仮面かぶればいい
手っ取り早く視聴数稼ぐには有名ユーチューバーへの物申す系動画がオススメ
587デフォルトの名無しさん (ワッチョイ 2623-toSE)
2017/07/27(木) 04:56:34.97ID:Ddw23w1u0 >>585
クラスやらユーザ定義型を作るね。
クラスやらユーザ定義型を作るね。
588デフォルトの名無しさん (オッペケ Srb3-ZCwv)
2017/07/27(木) 05:41:33.30ID:8/6stQ5Xr >>584
つ 上級者の定義
つ 上級者の定義
589デフォルトの名無しさん (ワッチョイ db91-ntdb)
2017/07/27(木) 06:25:09.17ID:Gu8HEug70590デフォルトの名無しさん (ドコグロ MM8a-gqKx)
2017/07/27(木) 06:47:24.74ID:P1js1uXhM >>582
> なぜ?
> 逆にスーパークラスに相当する関数に
> スイッチみたいな引数を付けて
> サブクラスに相当する関数に分岐するとか
サブクラスを増やす度にスーパークラスに手を入れるつもりなの?
真顔で言ってるなら単なるアホだろ w
> で、どうするの?
無理じゃね?
って書いてあるんだが...
> なぜ?
> 逆にスーパークラスに相当する関数に
> スイッチみたいな引数を付けて
> サブクラスに相当する関数に分岐するとか
サブクラスを増やす度にスーパークラスに手を入れるつもりなの?
真顔で言ってるなら単なるアホだろ w
> で、どうするの?
無理じゃね?
って書いてあるんだが...
591デフォルトの名無しさん (ドコグロ MM8a-gqKx)
2017/07/27(木) 07:00:09.74ID:P1js1uXhM >>585
> 各シートの統計情報を取りたい時はどうする?
要件次第
> 例えば、セルを更新した回数、最大値、最小値、平均値
> を各シート毎に知りたい時
更新回数以外は全セルなめて計算することもあるしイベント毎に合計、最大、最小を更新していくのもあるだろうな
> 後から分散とか標準偏差とかも知りたくなったらどうする?
そういう機能を実装するだけ
イベント以外はオブジェクト指向関係ないと思うぞ
> 各シートの統計情報を取りたい時はどうする?
要件次第
> 例えば、セルを更新した回数、最大値、最小値、平均値
> を各シート毎に知りたい時
更新回数以外は全セルなめて計算することもあるしイベント毎に合計、最大、最小を更新していくのもあるだろうな
> 後から分散とか標準偏差とかも知りたくなったらどうする?
そういう機能を実装するだけ
イベント以外はオブジェクト指向関係ないと思うぞ
592デフォルトの名無しさん (ワッチョイ db91-ntdb)
2017/07/27(木) 07:12:45.05ID:Gu8HEug70 >>590
でいちいち同じ処理をコピペするの?
でいちいち同じ処理をコピペするの?
593デフォルトの名無しさん (ワッチョイ db91-ntdb)
2017/07/27(木) 07:13:37.01ID:Gu8HEug70 >>591
生産性が違うんじゃね?
生産性が違うんじゃね?
594デフォルトの名無しさん (ワッチョイ db91-ntdb)
2017/07/27(木) 07:15:00.43ID:Gu8HEug70 >>591
全セルなめるとか性能要件を満たせなくなる可能性が高いだろ
全セルなめるとか性能要件を満たせなくなる可能性が高いだろ
595デフォルトの名無しさん (ワッチョイ 666d-V1Wy)
2017/07/27(木) 07:17:39.18ID:mlaDFoVL0596デフォルトの名無しさん (ワッチョイ db91-ntdb)
2017/07/27(木) 07:17:56.55ID:Gu8HEug70 >>590
サブクラスからスーパークラスを呼ぶ方は?
サブクラスからスーパークラスを呼ぶ方は?
597デフォルトの名無しさん (ドコグロ MM8a-gqKx)
2017/07/27(木) 07:37:59.47ID:P1js1uXhM598デフォルトの名無しさん (ワッチョイ 2623-toSE)
2017/07/27(木) 07:40:20.87ID:Ddw23w1u0599デフォルトの名無しさん (アウアウエー Sae2-kGGk)
2017/07/27(木) 08:16:42.60ID:LMuXn2N9a >>575
結局それだと要らんもんまで呼び出したり不便なんだよ
やれんことはないけど不便
オーバーロードもやれんことはないけど実装がめんどくさい
使いたい場面は結構出てくると思うけどね
インターフェースもなんかスマートじゃないし
結局それだと要らんもんまで呼び出したり不便なんだよ
やれんことはないけど不便
オーバーロードもやれんことはないけど実装がめんどくさい
使いたい場面は結構出てくると思うけどね
インターフェースもなんかスマートじゃないし
600デフォルトの名無しさん (ワッチョイ 1f73-cdfR)
2017/07/27(木) 08:50:43.35ID:f8l+azOG0 お前らスレタイ読んで他所へ行け
601デフォルトの名無しさん (ワッチョイ db5a-PZKh)
2017/07/27(木) 09:44:44.74ID:cQuO+1bD0 【IT】10代のネット環境「スマホのみ」が7割、「PCのみ」は25%にとどまる [無断転載禁止]©2ch.net
http://egg.2ch.net/test/read.cgi/bizplus/1500900491/
http://egg.2ch.net/test/read.cgi/bizplus/1500900491/
602デフォルトの名無しさん (スップ Sd8a-y7IM)
2017/07/27(木) 09:49:36.92ID:yI2DKD3yd >>600
クラスモジュールがある以上、このスレの話題として守備範囲内
クラスモジュールがある以上、このスレの話題として守備範囲内
603デフォルトの名無しさん (JP 0H76-ZO1u)
2017/07/27(木) 10:22:34.31ID:ZNB0F0Q0H >>554
> ライター、チャッカマン、バーナーが他所であるのにマッチでも火をおこせるしこれはこれで良いもんだぞって言ってるようなもん
マッチだけでも十分OOできる
それにWithEventsもあるしね
https://github.com/rubberduck203/VBEX のソース読んだか?以外といろいろできるぞ
> ライター、チャッカマン、バーナーが他所であるのにマッチでも火をおこせるしこれはこれで良いもんだぞって言ってるようなもん
マッチだけでも十分OOできる
それにWithEventsもあるしね
https://github.com/rubberduck203/VBEX のソース読んだか?以外といろいろできるぞ
604デフォルトの名無しさん (スップ Sd8a-y7IM)
2017/07/27(木) 10:40:17.72ID:yI2DKD3yd605デフォルトの名無しさん (JP 0H76-ZO1u)
2017/07/27(木) 10:55:11.44ID:ZNB0F0Q0H >>604
> これはあなたが作者さんなの?
いや、俺じゃないよ
コードサンプルとして読んでみたらってこと
あとこれとか
https://github.com/jpimbert/VBAToolKit/tree/master/Source/VbaUnit
OOの知識があって、いわゆる「インターフェース継承」を視野に入れれば、かなりのことができる
さらに、WithEventsを使えば双方向データバインディングなんかも実装できる
> これはあなたが作者さんなの?
いや、俺じゃないよ
コードサンプルとして読んでみたらってこと
あとこれとか
https://github.com/jpimbert/VBAToolKit/tree/master/Source/VbaUnit
OOの知識があって、いわゆる「インターフェース継承」を視野に入れれば、かなりのことができる
さらに、WithEventsを使えば双方向データバインディングなんかも実装できる
606デフォルトの名無しさん (ドコグロ MM22-toSE)
2017/07/27(木) 11:24:49.36ID:698/A489M インタフェースなんかvbaで使うなボケ
607デフォルトの名無しさん (スップ Sd8a-y7IM)
2017/07/27(木) 11:56:09.26ID:yI2DKD3yd608デフォルトの名無しさん (アークセー Sxb3-PRKf)
2017/07/27(木) 12:01:06.07ID:SAqwCo2Mx >>606
ほーわーいー
ほーわーいー
609デフォルトの名無しさん (スップ Sd8a-y7IM)
2017/07/27(木) 12:17:23.37ID:yI2DKD3yd チンリン山脈
610デフォルトの名無しさん (アウアウエー Sae2-kGGk)
2017/07/27(木) 13:24:05.39ID:LMuXn2N9a >>603
いやだからさ
俺の言いたいこと伝わらないし理解する気無いよね
こっちはマッチしか無いから仕方なくマッチ使ってんの
不満だからって努力を放棄してるわけじゃないからな?
ただどう考えても手間だろ
そんだけの話
いやだからさ
俺の言いたいこと伝わらないし理解する気無いよね
こっちはマッチしか無いから仕方なくマッチ使ってんの
不満だからって努力を放棄してるわけじゃないからな?
ただどう考えても手間だろ
そんだけの話
611デフォルトの名無しさん (JP 0H76-ZO1u)
2017/07/27(木) 14:02:53.37ID:ZNB0F0Q0H >>610
君も俺の言いたいこと1ミリも理解しようとしてないから、お互い様だね
君も俺の言いたいこと1ミリも理解しようとしてないから、お互い様だね
612デフォルトの名無しさん (ササクッテロル Spb3-ntdb)
2017/07/27(木) 14:43:39.94ID:DPiXNUUHp613デフォルトの名無しさん (ドコグロ MM8a-gqKx)
2017/07/27(木) 16:09:11.81ID:P1js1uXhM614デフォルトの名無しさん (ワッチョイ ea06-HJpE)
2017/07/27(木) 16:44:21.21ID:7xCZa4oD0 だからさぁお前らは雑談したいだけだろ?スレ立ててそこでやれっつーの
クソうぜぇ
クソうぜぇ
615デフォルトの名無しさん (アウアウエー Sae2-kGGk)
2017/07/27(木) 16:44:34.77ID:uf/My/5wa >>611
使い方によってはvbaだってoopできるよ!って言いたいんでしょ?
使い方によってはvbaだってoopできるよ!って言いたいんでしょ?
616デフォルトの名無しさん (JP 0H76-ZO1u)
2017/07/27(木) 17:00:44.58ID:ZNB0F0Q0H617デフォルトの名無しさん (スップ Sd8a-y7IM)
2017/07/27(木) 17:11:23.71ID:yI2DKD3yd 使いたいときに便利な機能を自由につまみ食いできるのがいいライブラリだと思っているんだが、
オブジェクト指向のライブラリって少しおせっかいというか世界観を押し付けてくるところがある。
会員にならないと利用できないサービスみたいな感じ。
自分で作ったものを自分で利用する分には当然問題ないんだけどね。
VBAの言語機能の弱さを考えると、クラス間の関連のある体系的な使い方を実現するのは厳しいだろう。
オブジェクト指向のライブラリって少しおせっかいというか世界観を押し付けてくるところがある。
会員にならないと利用できないサービスみたいな感じ。
自分で作ったものを自分で利用する分には当然問題ないんだけどね。
VBAの言語機能の弱さを考えると、クラス間の関連のある体系的な使い方を実現するのは厳しいだろう。
618デフォルトの名無しさん (アウアウエー Sae2-kGGk)
2017/07/27(木) 17:44:10.44ID:uf/My/5wa619デフォルトの名無しさん (JP 0H76-ZO1u)
2017/07/27(木) 17:59:09.25ID:ZNB0F0Q0H 経験不足だね
言語10個くらいマスターしてこい
言語10個くらいマスターしてこい
620デフォルトの名無しさん (アウーイモ MM9f-k5Qo)
2017/07/27(木) 19:42:01.40ID:xCwJ4jCdM 某サイトを参考にメールを一括作成するVBAを書いています。
createitemfromtemplateの行で「実行時エラー13 型が一致しません」というエラーが出ます。
どうやらcreateitemfromtemplateがうまく機能していないようなのですが、解決方法を教えていただけませんでしょうか。
よろしくお願いいたします。
※「Microsoft Outlook 14.0 Object Library」の参照設定はONになっています。
-----------------------------------
Sub main()
Dim OL As New Outlook.Application
Dim M As MailItem
Dim MaxRow: MaxRow = Range("A1").End(xlDown).Row
For i = 2 To MaxRow
Set M = OL.createitemfromtemplate("D:\本文.msg")
M.To = Cells(i, 列.件名).Value
M.Subject = Cells(i, 列.件名).Value
M.Attachments.Add "D:\" & Cells(i, 列.添付ファイル).Value
M.HTMLBody = Replace(M.HTMLBody, "●●", Cells(i, 列.氏名).Value)
M.SaveAs "D:\" & Cells(i, 列.企業名).Value & "_" & Cells(i, 列.氏名).Value & ".msg"
Next
End Sub
-----------------------------------
createitemfromtemplateの行で「実行時エラー13 型が一致しません」というエラーが出ます。
どうやらcreateitemfromtemplateがうまく機能していないようなのですが、解決方法を教えていただけませんでしょうか。
よろしくお願いいたします。
※「Microsoft Outlook 14.0 Object Library」の参照設定はONになっています。
-----------------------------------
Sub main()
Dim OL As New Outlook.Application
Dim M As MailItem
Dim MaxRow: MaxRow = Range("A1").End(xlDown).Row
For i = 2 To MaxRow
Set M = OL.createitemfromtemplate("D:\本文.msg")
M.To = Cells(i, 列.件名).Value
M.Subject = Cells(i, 列.件名).Value
M.Attachments.Add "D:\" & Cells(i, 列.添付ファイル).Value
M.HTMLBody = Replace(M.HTMLBody, "●●", Cells(i, 列.氏名).Value)
M.SaveAs "D:\" & Cells(i, 列.企業名).Value & "_" & Cells(i, 列.氏名).Value & ".msg"
Next
End Sub
-----------------------------------
621デフォルトの名無しさん (ワッチョイ 6623-V1Wy)
2017/07/27(木) 20:32:44.20ID:60P4ZjAM0 >>620
msdnのリファレンスをみると
Outlookテンプレート(.oft)を指定しろって書いてあるので
怒られているとおり、型がちがうのでしょう。
CreateItemメソッドを使えばいいんじゃないでしょうか。
msdnのリファレンスをみると
Outlookテンプレート(.oft)を指定しろって書いてあるので
怒られているとおり、型がちがうのでしょう。
CreateItemメソッドを使えばいいんじゃないでしょうか。
622デフォルトの名無しさん (ワッチョイ 0fe4-Tef8)
2017/07/27(木) 21:59:25.00ID:aAe8+IMH0 オブジェクト指向がどうこうって語りたいなら
オブジェクト指向
って言葉と
オブジェクト指向言語
って言葉をちゃんと区別して発言して下さい
オブジェクト指向
って言葉と
オブジェクト指向言語
って言葉をちゃんと区別して発言して下さい
623620 (アウーイモ MM9f-k5Qo)
2017/07/27(木) 22:07:28.99ID:xCwJ4jCdM >>621
返信ありがとうございます!!
すみません、CreateItemでも変わらずエラーでした・・。
ちなみに下記のように.oftを指定しても同じでした。
これは本当に不思議です・・・。
---------------------------------------
Sub test03()
Dim OL As New Outlook.Application
Dim M As MailItem
Set M = OL.CreateItemFromTemplate("D:\本文.oft")
M.To = "aaaa@bbb.co.jp"
M.SaveAs "D:\test03.msg"
End Sub
---------------------------------------
返信ありがとうございます!!
すみません、CreateItemでも変わらずエラーでした・・。
ちなみに下記のように.oftを指定しても同じでした。
これは本当に不思議です・・・。
---------------------------------------
Sub test03()
Dim OL As New Outlook.Application
Dim M As MailItem
Set M = OL.CreateItemFromTemplate("D:\本文.oft")
M.To = "aaaa@bbb.co.jp"
M.SaveAs "D:\test03.msg"
End Sub
---------------------------------------
624デフォルトの名無しさん (ワッチョイ 6aaa-V1Wy)
2017/07/27(木) 22:19:54.50ID:eHKEweRs0 関西のお笑いと関西のお笑い芸人も区別して語るべきなのか?
625デフォルトの名無しさん (アークセー Sxb3-PRKf)
2017/07/27(木) 22:40:28.48ID:SAqwCo2Mx >>624
そうよ
そうよ
626デフォルトの名無しさん (ワッチョイ ea6f-ZO1u)
2017/07/27(木) 22:46:54.67ID:e65zqkX+0 俺予想だと、2023年くらいに.NETと統合されるので、大丈夫じゃないの。
627デフォルトの名無しさん (ワッチョイ 6623-V1Wy)
2017/07/27(木) 23:04:48.75ID:60P4ZjAM0 >>623
Sub test()
Dim ol As New Outlook.Application
Dim mi As MailItem
Set mi = ol.CreateItem(olMailItem)
mi.Display
End Sub
この最小構成でメール編集画面がでるかお試しを。
出なかったら参照設定が変なのかも。
Excelのバージョンが変わると勝手に参照設定のバージョンも
変わるという罠に引っかかったことがあるので。
実行時バインディングでやってみると言う手もあり。
Sub test()
Dim ol As New Outlook.Application
Dim mi As MailItem
Set mi = ol.CreateItem(olMailItem)
mi.Display
End Sub
この最小構成でメール編集画面がでるかお試しを。
出なかったら参照設定が変なのかも。
Excelのバージョンが変わると勝手に参照設定のバージョンも
変わるという罠に引っかかったことがあるので。
実行時バインディングでやってみると言う手もあり。
628620 (アウーイモ MM9f-6wLz)
2017/07/27(木) 23:18:55.37ID:xCwJ4jCdM629デフォルトの名無しさん (オッペケ Srb3-ZCwv)
2017/07/27(木) 23:25:30.12ID:8/6stQ5Xr '// 1行目の項目名が、A列から順に
'//[アドレス][件名][添付ファイルパス][本文]
'// のとき、
Dim dataSet
Dim lastRow As Long
Dim i As Long
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
dataSet = Range(Cells(2, 1), Cells(lastRow, 4)).Value
With CreateObject("Outlook.Application")
.GetNamespace("MAPI").GetDefaultFolder(16).Display
For i = 1 To lastRow - 1
With .CreateItem(olMailItem)
.To = dataSet(i, 1)
.Subject = dataSet(i, 2)
.Attachments.Add dataSet(i, 3)
.Body = dataSet(i, 4)
.Save
End With
Next i
End With
'//[アドレス][件名][添付ファイルパス][本文]
'// のとき、
Dim dataSet
Dim lastRow As Long
Dim i As Long
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
dataSet = Range(Cells(2, 1), Cells(lastRow, 4)).Value
With CreateObject("Outlook.Application")
.GetNamespace("MAPI").GetDefaultFolder(16).Display
For i = 1 To lastRow - 1
With .CreateItem(olMailItem)
.To = dataSet(i, 1)
.Subject = dataSet(i, 2)
.Attachments.Add dataSet(i, 3)
.Body = dataSet(i, 4)
.Save
End With
Next i
End With
630デフォルトの名無しさん (ワッチョイ 6623-V1Wy)
2017/07/27(木) 23:27:06.45ID:60P4ZjAM0 >>628
よく考えたら、参照ならその前にエラーを吐きそう。
ためしに
Sub test()
Dim ol As Object
Set ol = CreateObject("Outlook.Application")
Dim mi As Object
Set mi = ol.CreateItem(olMailItem)
mi.Display
End Sub
これをOption Explicitを無効にして実行したら
どうなるでしょうか?
だめならOS再起動してみる。
どうにも理解不能なエラーがこれで直ったことがあるw。
よく考えたら、参照ならその前にエラーを吐きそう。
ためしに
Sub test()
Dim ol As Object
Set ol = CreateObject("Outlook.Application")
Dim mi As Object
Set mi = ol.CreateItem(olMailItem)
mi.Display
End Sub
これをOption Explicitを無効にして実行したら
どうなるでしょうか?
だめならOS再起動してみる。
どうにも理解不能なエラーがこれで直ったことがあるw。
631デフォルトの名無しさん (ワッチョイ 0fe4-Tef8)
2017/07/27(木) 23:56:32.00ID:aAe8+IMH0 >>628
まず、そのユーザーでOutlookはちゃんと動いてメールの送受信できるのか?
まず、そのユーザーでOutlookはちゃんと動いてメールの送受信できるのか?
632620 (アウーイモ MM9f-6wLz)
2017/07/28(金) 00:24:24.58ID:EJW5hZGgM633620 (アウアウアー Sab6-6wLz)
2017/07/28(金) 04:23:09.57ID:Kx1QSHwna 皆様ありがとうございました!
理由はわかりませんが突然できるようになりました!
本当にご迷惑おかけしました!
理由はわかりませんが突然できるようになりました!
本当にご迷惑おかけしました!
634デフォルトの名無しさん (オッペケ Srb3-ZCwv)
2017/07/28(金) 04:32:44.73ID:ccATQH/dr >>632
ごめん。コード間違ってた。orz
参照設定をoffにし、↓のコードで試してみて。
'// olMailItemを直値(0)に変えた
Dim dataSet
Dim lastRow As Long
Dim i As Long
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
dataSet = Range(Cells(2, 1), Cells(lastRow, 4)).Value
With CreateObject("Outlook.Application")
.GetNamespace("MAPI").GetDefaultFolder(16).Display
For i = 1 To lastRow - 1
With .CreateItem(0)
.To = dataSet(i, 1)
.Subject = dataSet(i, 2)
.Attachments.Add dataSet(i, 3)
.Body = dataSet(i, 4)
.Save
End With
Next i
End With
ごめん。コード間違ってた。orz
参照設定をoffにし、↓のコードで試してみて。
'// olMailItemを直値(0)に変えた
Dim dataSet
Dim lastRow As Long
Dim i As Long
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
dataSet = Range(Cells(2, 1), Cells(lastRow, 4)).Value
With CreateObject("Outlook.Application")
.GetNamespace("MAPI").GetDefaultFolder(16).Display
For i = 1 To lastRow - 1
With .CreateItem(0)
.To = dataSet(i, 1)
.Subject = dataSet(i, 2)
.Attachments.Add dataSet(i, 3)
.Body = dataSet(i, 4)
.Save
End With
Next i
End With
635デフォルトの名無しさん (オッペケ Srb3-ZCwv)
2017/07/28(金) 04:34:16.17ID:ccATQH/dr 一歩遅かったか…orz
637デフォルトの名無しさん (ワッチョイ db11-AITk)
2017/07/28(金) 23:02:57.85ID:+oxMyCi10 win10
excel2016で
MSXML2.XMLHTTPを使って
responseTextでgoogle検索結果のページを取得しようとすると、
responseTextで返ってきたものが、今までwin7 excel2007などで返ってきたものと全然違うんですが、win7の時のように受け取る方法ってありませんか?
win7の時はhtmlそのものが返ってきてましたがwin10では最初の方が判読困難です。
やろうとしていることは、vbaでgoogle画像検索の結果の画像をセルに表示しようと思ってます。
excel2016で
MSXML2.XMLHTTPを使って
responseTextでgoogle検索結果のページを取得しようとすると、
responseTextで返ってきたものが、今までwin7 excel2007などで返ってきたものと全然違うんですが、win7の時のように受け取る方法ってありませんか?
win7の時はhtmlそのものが返ってきてましたがwin10では最初の方が判読困難です。
やろうとしていることは、vbaでgoogle画像検索の結果の画像をセルに表示しようと思ってます。
638デフォルトの名無しさん (ワッチョイ 6aaa-V1Wy)
2017/07/30(日) 10:16:32.82ID:WZc9I6Vq0 そういえば responseBody しか使ったことないなあ
(adTypeBinary な ADODB オブジェクトに Write するために)
(adTypeBinary な ADODB オブジェクトに Write するために)
639デフォルトの名無しさん (ワッチョイ db11-AITk)
2017/07/30(日) 12:41:33.40ID:ND/Yhbfk0 すみません、いろいろ試してたんですが、google以外ではちゃんと同じようなものを受け取れてました。
googleでは環境によって返すものが違うのかもしれません。
その先はスレ違いになるので自分でいろいろやってみます。ありがとうございました。
googleでは環境によって返すものが違うのかもしれません。
その先はスレ違いになるので自分でいろいろやってみます。ありがとうございました。
640デフォルトの名無しさん (ワッチョイ 666d-fl5W)
2017/07/30(日) 15:24:50.24ID:LIjBkUDz0 api以外でgoogleの検索結果を取得しないほうがいい
すぐにアクセス禁止になる
すぐにアクセス禁止になる
641デフォルトの名無しさん (アウーイモ MM9f-GszO)
2017/08/02(水) 00:57:39.97ID:O3oN8G+MM Function Name2Adr(str As String)
Dim Cts As Folder, Ct As ContactItem
Set Cts = CreateObject("Outlook.Application").GetNamespace("MAPI").GetDefaultFolder(olFolderContacts)
Set Ct = Cts.Items.Find("[Email1DisplayName] = '" & str & "'")
If Ct Is Nothing Then Name2Adr = "不明" Else Name2Adr = Ct.Email1Address
Set Cts = Nothing: Set Ct = Nothing
End Function
↑ローカルのアドレス帳から表示名を検索しメアドを返す関数です。これはうまくいくのですが、
↓下のグローバルアドレス帳を検索するものがうまくいきません。エラーメッセージは「オブジェクトはこのプロパティまたはメソッドをサポートしていません」です。
どなたか解決法をご教示ください。よろしくお願いします。
Function gName2Adr(str As String)
Dim olApplication As Outlook.Application
Dim olNameSpace As Outlook.Namespace
Dim olAddressLists As Outlook.AddressLists
Dim olAddressList As Outlook.AddressList
Dim olAddressEntries As Outlook.AddressEntries
Set olApplication = New Outlook.Application
Set olNameSpace = olApplication.Session
Set olAddressLists = olNameSpace.AddressLists
Set olAddressList = olAddressLists.Item(2)
Set olAddressEntries = olAddressList.AddressEntries
Dim olAddressEntry As Outlook.AddressEntry
Set olAddressEntry = olAddressEntries.Items.Find("[Email1DisplayName] = '" & str & "'") '←この行でエラー
If olAddressEntry Is Nothing Then gName2Adr = "不明" Else gName2Adr = olAddressEntry.Email1Address
End Function
Dim Cts As Folder, Ct As ContactItem
Set Cts = CreateObject("Outlook.Application").GetNamespace("MAPI").GetDefaultFolder(olFolderContacts)
Set Ct = Cts.Items.Find("[Email1DisplayName] = '" & str & "'")
If Ct Is Nothing Then Name2Adr = "不明" Else Name2Adr = Ct.Email1Address
Set Cts = Nothing: Set Ct = Nothing
End Function
↑ローカルのアドレス帳から表示名を検索しメアドを返す関数です。これはうまくいくのですが、
↓下のグローバルアドレス帳を検索するものがうまくいきません。エラーメッセージは「オブジェクトはこのプロパティまたはメソッドをサポートしていません」です。
どなたか解決法をご教示ください。よろしくお願いします。
Function gName2Adr(str As String)
Dim olApplication As Outlook.Application
Dim olNameSpace As Outlook.Namespace
Dim olAddressLists As Outlook.AddressLists
Dim olAddressList As Outlook.AddressList
Dim olAddressEntries As Outlook.AddressEntries
Set olApplication = New Outlook.Application
Set olNameSpace = olApplication.Session
Set olAddressLists = olNameSpace.AddressLists
Set olAddressList = olAddressLists.Item(2)
Set olAddressEntries = olAddressList.AddressEntries
Dim olAddressEntry As Outlook.AddressEntry
Set olAddressEntry = olAddressEntries.Items.Find("[Email1DisplayName] = '" & str & "'") '←この行でエラー
If olAddressEntry Is Nothing Then gName2Adr = "不明" Else gName2Adr = olAddressEntry.Email1Address
End Function
642デフォルトの名無しさん (アウアウカー Safb-IFL0)
2017/08/02(水) 02:57:39.31ID:9fnjiac4a >>641
名前長いな
名前長いな
643デフォルトの名無しさん (オッペケ Srb3-ZCwv)
2017/08/02(水) 06:22:21.40ID:Yub86NHXr 少々長くてもわかりやすい名前をつけるのが基本だからね。
ハンガリアンよりは全然いい。
ハンガリアンよりは全然いい。
644デフォルトの名無しさん (ワッチョイ 0f3d-HJpE)
2017/08/02(水) 06:31:28.66ID:SLRN4nNP0 少々長くても分かりやすい名前を付ける、それがハンガリアン記法
想像してるのはたぶんシステムハンガリアン記法
想像してるのはたぶんシステムハンガリアン記法
645デフォルトの名無しさん (ワキゲー MMa2-lmxC)
2017/08/02(水) 07:20:47.27ID:Mrcj6vwlM 変数はAddressなのにメソッド名はAdrで統一してないのは理由あるの?
646デフォルトの名無しさん (アークセー Sxb3-h9ZP)
2017/08/02(水) 07:40:08.64ID:ed9o3kBwx 変数名長いなぁ
olAppとかAdrListとかにすれば良いやん
olAppとかAdrListとかにすれば良いやん
647デフォルトの名無しさん (オッペケ Srb3-ZCwv)
2017/08/02(水) 07:40:35.97ID:Yub86NHXr648デフォルトの名無しさん (オッペケ Srb3-ZCwv)
2017/08/02(水) 07:44:09.62ID:Yub86NHXr649デフォルトの名無しさん (ワッチョイ 666d-V1Wy)
2017/08/02(水) 07:44:43.49ID:boOv7Sns0650デフォルトの名無しさん (ドコグロ MM22-gqKx)
2017/08/02(水) 08:11:17.19ID:i5+f8wczM >>649
参照設定してないだけじゃね?
参照設定してないだけじゃね?
651デフォルトの名無しさん (ワッチョイ 666d-F3YI)
2017/08/02(水) 08:56:23.68ID:boOv7Sns0652デフォルトの名無しさん (ワッチョイ ea2e-ZO1u)
2017/08/02(水) 09:10:48.85ID:Y/LidHA/0 >>650
649は店に来たお客さんのつもりのようだから、まともに相手する必要はないよ
649は店に来たお客さんのつもりのようだから、まともに相手する必要はないよ
653デフォルトの名無しさん (オイコラミネオ MMb6-cdfR)
2017/08/02(水) 11:50:02.54ID:a22879YUM 単なる自己満足なんだからそこまで突っ込むなよ
どうせ永遠に平行線なんだろ?
どうせ永遠に平行線なんだろ?
654デフォルトの名無しさん (ワキゲー MMa2-lmxC)
2017/08/02(水) 12:08:29.03ID:pZ2w6jYsM655デフォルトの名無しさん (オッペケ Srb3-ZCwv)
2017/08/02(水) 12:26:23.95ID:Yub86NHXr656デフォルトの名無しさん (ワキゲー MMa2-lmxC)
2017/08/02(水) 12:33:57.68ID:x+1N4OhAM >>655
言語関係なくただのキャメルケースだよ
言語関係なくただのキャメルケースだよ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相、トランプ米大統領に「早期に会いたい」 日中関係悪化受け… ★3 [BFU★]
- 「これいいじゃん!!!」 セブン-イレブンの1620円で買える“1人用クリスマスケーキ”🎂に注目殺到「天才すぎる」 [パンナ・コッタ★]
- 【コメ】卸売業者「簡単に安売りできない」「大暴落起きれば大赤字に」 JA「新米の販売進度が近年になく遅い。コメの回転が悪い」 ★5 [Hitzeschleier★]
- 高市早苗首相が天理教系企業に“巨額発注” 総額5000万円 本人は「政治団体の活動に必要な支出」と回答 ★2 [Hitzeschleier★]
- 【サッカー】日本代表、FIFAランキング“4位”の強豪イングランドとの対戦が正式決定! 来年3月に聖地ウェンブリーで激突へ [久太郎★]
- 「残クレ」でマイホーム、国が銀行向け保険 新型住宅ローン普及促す -日経 ★3 [少考さん★]
- 高市早苗「長期金利なんかよりも日本が成長することのほうが大事」 [834922174]
- 【悲報】高市「マクロンさあ!近平G7に呼ばずハミゴにしちゃってよ!😡」【小学生内閣】 [359965264]
- 結局手を出さなければ緊張することもなかった、高市早苗の外交力はゼロどころかマイナス [245325974]
- 近所にびっくりドンキーがないんだけど!!!
- 【安倍晋三】中国船4隻が領海侵入 [828897501]
- 【実況】博衣こよりのえちえちスーパーダンガンロンパ4🧪
