End Sub ----------------------------------- 0621デフォルトの名無しさん (ワッチョイ 6623-V1Wy)2017/07/27(木) 20:32:44.20ID:60P4ZjAM0>>620 msdnのリファレンスをみると Outlookテンプレート(.oft)を指定しろって書いてあるので 怒られているとおり、型がちがうのでしょう。
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 0630デフォルトの名無しさん (ワッチョイ 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
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 0635デフォルトの名無しさん (オッペケ Srb3-ZCwv)2017/07/28(金) 04:34:16.17ID:ccATQH/dr 一歩遅かったか…orz 0636620 (アウアウアー Sab6-6wLz)2017/07/28(金) 06:49:10.86ID:Kx1QSHwna>>635 おはようございます! ありがとうございます! 0637デフォルトの名無しさん (ワッチョイ 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画像検索の結果の画像をセルに表示しようと思ってます。 0638デフォルトの名無しさん (ワッチョイ 6aaa-V1Wy)2017/07/30(日) 10:16:32.82ID:WZc9I6Vq0 そういえば responseBody しか使ったことないなあ (adTypeBinary な ADODB オブジェクトに Write するために) 0639デフォルトの名無しさん (ワッチョイ db11-AITk)2017/07/30(日) 12:41:33.40ID:ND/Yhbfk0 すみません、いろいろ試してたんですが、google以外ではちゃんと同じようなものを受け取れてました。 googleでは環境によって返すものが違うのかもしれません。 その先はスレ違いになるので自分でいろいろやってみます。ありがとうございました。 0640デフォルトの名無しさん (ワッチョイ 666d-fl5W)2017/07/30(日) 15:24:50.24ID:LIjBkUDz0 api以外でgoogleの検索結果を取得しないほうがいい すぐにアクセス禁止になる 0641デフォルトの名無しさん (アウーイモ 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 0642デフォルトの名無しさん (アウアウカー Safb-IFL0)2017/08/02(水) 02:57:39.31ID:9fnjiac4a>>641 名前長いな 0643デフォルトの名無しさん (オッペケ Srb3-ZCwv)2017/08/02(水) 06:22:21.40ID:Yub86NHXr 少々長くてもわかりやすい名前をつけるのが基本だからね。 ハンガリアンよりは全然いい。 0644デフォルトの名無しさん (ワッチョイ 0f3d-HJpE)2017/08/02(水) 06:31:28.66ID:SLRN4nNP0 少々長くても分かりやすい名前を付ける、それがハンガリアン記法
2010、win7だけどエラーでない 0676デフォルトの名無しさん (ワッチョイ cf11-4x8g)2017/08/05(土) 13:00:51.75ID:J2w+rLAY0>>675 時刻同士で割って見て 0677デフォルトの名無しさん (ワッチョイ 2b11-ysrI)2017/08/05(土) 13:07:29.37ID:j7okUzoP0 ダブルにキャストしてから計算したら ずれるのかな? 0678デフォルトの名無しさん (ワッチョイ 3b6d-iBdB)2017/08/05(土) 13:08:47.84ID:kXEyZiX90>>676 Sub foo() bar = Date / Date Debug.Print bar End Sub
つか、俺たちが釣られただけ? 0689デフォルトの名無しさん (ワッチョイ 0b06-gAma)2017/08/05(土) 23:56:01.89ID:dqSa99my0 質問者が軌道修正のために必要な情報を提供しないってのはここではザラにあることだろ。 そんなのによく付き合ってられんなー 0690デフォルトの名無しさん (ワッチョイ 03aa-dE0h)2017/08/06(日) 00:12:38.56ID:7dbJmn2Z0 質問室じゃねえんだよ 0691デフォルトの名無しさん (オッペケ Srd9-31he)2017/08/06(日) 12:22:25.32ID:hXGNAkd3r また教えたがりの無能が暴れとるのかw 0692デフォルトの名無しさん (アウアウカー Sac9-6G5k)2017/08/06(日) 16:09:44.69ID:wM27hiyIa 暴れているのはただの煽り 0693デフォルトの名無しさん (オイコラミネオ MM4b-4x8g)2017/08/07(月) 16:41:33.18ID:/LwpuoG3M>>678 dim a as date dim b as date dim test as date
Sub foo2() Dim a As Time Dim b As Time Dim test As Date
a = Time b = Time test_long = (a * 1) / (b * 1) 'ok test = a / (b * 1) 'ok test = 1 / b 'error test = (a * 1) / b 'error test = a / b 'error End Sub
Sub foo() Dim a As Variant Dim b As Variant Dim test As Date
a = Time b = Time test = a / b 'ok End Sub 0697デフォルトの名無しさん (ワッチョイ ad91-3aaz)2017/08/07(月) 20:36:42.78ID:5JtEoMJq0 Cdbl()で分母をDoubleにキャストすればいいだけじゃね? 0698デフォルトの名無しさん (ワッチョイ 3b6d-VAa7)2017/08/07(月) 20:39:22.17ID:PGc1T+jA0>>697 まぁ解決法としてはそれでも何でもいいし、そもそもdateで除算って事をやらないんだけど 根本的な原因が分からないと、変なとこで悪影響受けそう 0699デフォルトの名無しさん (ワッチョイ ad91-3aaz)2017/08/07(月) 20:54:07.86ID:5JtEoMJq0 Time って DateTime.Time プロパティのことだよな Property Time As Variant だからもともとVariant型
dim a As Time がエラーになるんだが 0700デフォルトの名無しさん (ワッチョイ ad91-3aaz)2017/08/07(月) 21:05:47.61ID:5JtEoMJq0 Date型はVBAのデータ型で"21:02:32"みたいな文字列なんじゃね? だから計算するとエラーになる 分子にDate型を持ってきたときはDoubleに自動的にキャストされてると予想 0701デフォルトの名無しさん (ワッチョイ 3b6d-9fgs)2017/08/07(月) 21:13:12.34ID:PGc1T+jA0>>699 ごめんなさい訂正前の送ってしまいました 定義部分は以下に変えてください
Sub foo2() Dim a As date Dim b As date 0702デフォルトの名無しさん (ワッチョイ cf11-4x8g)2017/08/07(月) 23:25:10.55ID:kmFs6vPH0>>695 2007じゃエラーでないよ 0703デフォルトの名無しさん (ワッチョイ 03aa-dE0h)2017/08/07(月) 23:33:20.74ID:elxVZ6u90 データベースのDATETIME型の値がそのままVBAのDate型変数にマップできれば楽なのに、 1900年以前だとうまくいかないのが残念だ。 0704デフォルトの名無しさん (ワッチョイ ad91-Mpnj)2017/08/07(月) 23:39:54.26ID:5JtEoMJq0>>702 2010とかだとエラーになる