{"id":4855,"date":"2014-09-08T23:48:29","date_gmt":"2014-09-08T14:48:29","guid":{"rendered":"http:\/\/www.ka-net.org\/blog\/?p=4855"},"modified":"2019-02-22T14:46:36","modified_gmt":"2019-02-22T05:46:36","slug":"vba%e3%81%a7%e3%82%a4%e3%83%b3%e3%82%bf%e3%83%bc%e3%83%8d%e3%83%83%e3%83%88%e4%b8%8a%e3%81%ae%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%92%e3%83%80%e3%82%a6%e3%83%b3%e3%83%ad%e3%83%bc%e3%83%89","status":"publish","type":"post","link":"https:\/\/www.ka-net.org\/blog\/?p=4855","title":{"rendered":"VBA\u3067\u30a4\u30f3\u30bf\u30fc\u30cd\u30c3\u30c8\u4e0a\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b\u65b9\u6cd5\u3092\u307e\u3068\u3081\u3066\u307f\u307e\u3057\u305f\u3002"},"content":{"rendered":"<p>\u300c<span style=\"color: #ff0000; font-weight: bold;\">VBA \u30d5\u30a1\u30a4\u30eb \u30c0\u30a6\u30f3\u30ed\u30fc\u30c9<\/span>\u300d\u3068\u3044\u3063\u305f\u30ad\u30fc\u30ef\u30fc\u30c9\u691c\u7d22\u3067\u306e\u30a2\u30af\u30bb\u30b9\u304c\u3042\u308a\u307e\u3057\u305f\u3002<\/p>\n<p>Office\u7cfb\u306eQ&amp;A\u30b5\u30a4\u30c8\u3092\u898b\u3066\u3082\u300c<span style=\"color: #ff0000; font-weight: bold;\">VBA\u3067\u30a4\u30f3\u30bf\u30fc\u30cd\u30c3\u30c8\u4e0a\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u305f\u3044<\/span>\u300d\u3068\u3044\u3046\u8981\u671b\u306f\u591a\u3044\u3088\u3046\u306a\u306e\u3067\u3001\u8272\u3005\u306a\u65b9\u6cd5\u3092\u307e\u3068\u3081\u3066\u307f\u308b\u3053\u3068\u306b\u3057\u307e\u3057\u305f\u3002<\/p>\n<h4 class=\"style4a\">\u6ce8\u610f\u70b9<\/h4>\n<ul>\n<li>\u5f53\u8a18\u4e8b\u306f\u5143\u30052014\u5e74\u306b\u516c\u958b\u3057\u305f\u3082\u306e\u3067\u3059\u304c\u3001\u4e00\u90e8\u5197\u9577\u306a\u51e6\u7406\u304c\u3042\u3063\u305f\u306e\u3067\u30012019\u5e742\u6708\u306b\u6539\u3081\u3066\u66f8\u304d\u76f4\u3059\u3053\u3068\u306b\u3057\u307e\u3057\u305f\u3002<\/li>\n<li>\u5f53\u8a18\u4e8b\u306b\u63b2\u8f09\u3057\u3066\u3044\u308b\u30b3\u30fc\u30c9\u306f\u3001Windows 10 Pro \u30d0\u30fc\u30b8\u30e7\u30f3 1809 64\u30d3\u30c3\u30c8\u7248\uff0bOffice 365 ProPlus \u30d0\u30fc\u30b8\u30e7\u30f3 1903 32\u30d3\u30c3\u30c8\u7248\u3001Windows 7 Professional 64\u30d3\u30c3\u30c8\u7248\uff0bOffice 2013 32\u30d3\u30c3\u30c8\u7248\u3067\u52d5\u4f5c\u78ba\u8a8d\u3092\u884c\u3044\u307e\u3057\u305f\u3002<\/li>\n<li>\u74b0\u5883\u306b\u3088\u3063\u3066\u306f\u30b3\u30fc\u30c9\u304c\u4e0a\u624b\u304f\u52d5\u4f5c\u3057\u306a\u3044\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u306e\u3067\u3001\u305d\u306e\u70b9\u306f\u3054\u6ce8\u610f\u304f\u3060\u3055\u3044\u3002<\/li>\n<\/ul>\n<h4 class=\"style4a\">\u76ee\u6b21<\/h4>\n<ol>\n<li><a href=\"\/\/www.ka-net.org\/blog\/?p=4855#URLDownloadToFile\" title=\"URLDownloadToFile\u3092\u4f7f\u3063\u3066\u30d5\u30a1\u30a4\u30eb\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b\u65b9\u6cd5\">URLDownloadToFile\u3092\u4f7f\u3063\u3066\u30d5\u30a1\u30a4\u30eb\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b\u65b9\u6cd5<\/a><\/li>\n<li><a href=\"\/\/www.ka-net.org\/blog\/?p=4855#HttpRequest\" title=\"XMLHTTPRequest + ADODB.Stream\u3092\u4f7f\u3063\u3066\u30d5\u30a1\u30a4\u30eb\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b\u65b9\u6cd5\">XMLHTTPRequest + ADODB.Stream\u3092\u4f7f\u3063\u3066\u30d5\u30a1\u30a4\u30eb\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b\u65b9\u6cd5<\/a><\/li>\n<li><a href=\"\/\/www.ka-net.org\/blog\/?p=4855#BasicAuth\" title=\"Basic\u8a8d\u8a3c\u306b\u3088\u308b\u30a2\u30af\u30bb\u30b9\u5236\u9650\u304c\u304b\u304b\u3063\u305f\u30b5\u30a4\u30c8\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b\u65b9\u6cd5\">Basic\u8a8d\u8a3c\u306b\u3088\u308b\u30a2\u30af\u30bb\u30b9\u5236\u9650\u304c\u304b\u304b\u3063\u305f\u30b5\u30a4\u30c8\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b\u65b9\u6cd5<\/a><\/li>\n<li><a href=\"\/\/www.ka-net.org\/blog\/?p=4855#FormAuth\" title=\"\u30d5\u30a9\u30fc\u30e0\u8a8d\u8a3c\u306b\u3088\u308b\u30a2\u30af\u30bb\u30b9\u5236\u9650\u304c\u304b\u304b\u3063\u305f\u30b5\u30a4\u30c8\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b\u65b9\u6cd5\">\u30d5\u30a9\u30fc\u30e0\u8a8d\u8a3c\u306b\u3088\u308b\u30a2\u30af\u30bb\u30b9\u5236\u9650\u304c\u304b\u304b\u3063\u305f\u30b5\u30a4\u30c8\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b\u65b9\u6cd5<\/a><\/li>\n<li><a href=\"\/\/www.ka-net.org\/blog\/?p=4855#NotificationBar\" title=\"\u901a\u77e5\u30d0\u30fc\/Internet Explorer\u30c0\u30a4\u30a2\u30ed\u30b0\u3092\u64cd\u4f5c\u3057\u3066\u30d5\u30a1\u30a4\u30eb\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b\u65b9\u6cd5\">\u901a\u77e5\u30d0\u30fc\/Internet Explorer\u30c0\u30a4\u30a2\u30ed\u30b0\u3092\u64cd\u4f5c\u3057\u3066\u30d5\u30a1\u30a4\u30eb\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b\u65b9\u6cd5<\/a><\/li>\n<\/ol>\n<hr \/>\n<h4 id=\"URLDownloadToFile\" class=\"style4a\">URLDownloadToFile\u3092\u4f7f\u3063\u3066\u30d5\u30a1\u30a4\u30eb\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b\u65b9\u6cd5<\/h4>\n<p>\u30a4\u30f3\u30bf\u30fc\u30cd\u30c3\u30c8\u4e0a\u3067\u3088\u304f\u898b\u304b\u3051\u308b\u306e\u304c\u3053\u306e\u65b9\u6cd5\u3001API\u95a2\u6570\u306e\u300c<a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/ms775123.aspx\" title=\"URLDownloadToFile function (Windows)\" target=\"_blank\">URLDownloadToFile<\/a>\u300d\u3092\u4f7f\u3063\u3066\u30d5\u30a1\u30a4\u30eb\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b\u65b9\u6cd5\u3067\u3059\u3002<\/p>\n<pre class=\"brush: vb; title: ; notranslate\" title=\"\">Option Explicit\r\n \r\n'\u203b 64\u30d3\u30c3\u30c8\u7248Office\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u5834\u5408\u306f\u8981\u4fee\u6b63\r\nPrivate Declare Function DeleteUrlCacheEntry Lib &quot;wininet&quot; Alias &quot;DeleteUrlCacheEntryW&quot; ( _\r\n        ByVal lpszUrlName As Long) As Long\r\nPrivate Declare Function URLDownloadToFile Lib &quot;urlmon&quot; Alias &quot;URLDownloadToFileW&quot; ( _\r\n        ByVal pCaller As Long, _\r\n        ByVal szURL As Long, _\r\n        ByVal szFileName As Long, _\r\n        ByVal dwReserved As Long, _\r\n        ByVal lpfnCB As Long) As Long\r\n \r\nPublic Sub Sample01()\r\n  DownloadFile &quot;https:\/\/www.ka-net.org\/images\/logo.jpg&quot;, _\r\n               &quot;C:\\Test\\Sample_001.jpg&quot;\r\n  MsgBox &quot;\u51e6\u7406\u304c\u7d42\u4e86\u3057\u307e\u3057\u305f\u3002&quot;, vbInformation + vbSystemModal\r\nEnd Sub\r\n \r\nPrivate Sub DownloadFile(ByVal Url As String, ByVal SaveFilePath As String)\r\n'URLDownloadToFile\u3067\u30d5\u30a1\u30a4\u30eb\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\r\n'http:\/\/msdn.microsoft.com\/en-us\/library\/aa383983.aspx\r\n'http:\/\/msdn.microsoft.com\/en-us\/library\/ms775123.aspx\r\n'http:\/\/www.ken3.org\/vba\/backno\/vba120.html \u53c2\u8003\r\n  Dim ret As Long\r\n  \r\n  ret = 0 '\u521d\u671f\u5316\r\n  DeleteUrlCacheEntry StrPtr(Url) '\u30ad\u30e3\u30c3\u30b7\u30e5\u30af\u30ea\u30a2\r\n  ret = URLDownloadToFile(0, StrPtr(Url), StrPtr(SaveFilePath), 0, 0)\r\n  If ret &lt;&gt; 0 Then MsgBox &quot;\u51e6\u7406\u304c\u5931\u6557\u3057\u307e\u3057\u305f\u3002&quot;, vbCritical + vbSystemModal\r\nEnd Sub<\/pre>\n<p><span style=\"color: #ff0000; font-weight: bold;\">DeleteUrlCacheEntry<\/span>\u95a2\u6570\u3067\u30ad\u30e3\u30c3\u30b7\u30e5\u3092\u524a\u9664\u3057\u305f\u5f8c\u3001<span style=\"color: #ff0000; font-weight: bold;\">URLDownloadToFile<\/span>\u95a2\u6570\u3067\u6307\u5b9a\u3057\u305f\u30d5\u30a1\u30a4\u30eb\u3092\u6307\u5b9a\u3057\u305f\u5834\u6240\u306b\u4fdd\u5b58\u3059\u308b\u3068\u3044\u3046\u3001\u30b7\u30f3\u30d7\u30eb\u306a\u3082\u306e\u3067\u3059\u306d\u3002\u8aac\u660e\u3082\u8981\u3089\u306a\u3044\u304f\u3089\u3044\u3067\u3059\u3002<\/p>\n<p>\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u305f\u3044\u30d5\u30a1\u30a4\u30eb\u306eURL\u304c\u5206\u304b\u3063\u3066\u3044\u308b\u5834\u5408\u306b\u306f\u3001\u3053\u306e\u65b9\u6cd5\u3092\u4f7f\u3046\u306e\u304c\u7c21\u5358\u3067\u3059\u3002<br \/>\n\u305f\u3060\u3057\u300164\u30d3\u30c3\u30c8\u7248Office\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u4e0a\u8a18\u306e\u30b3\u30fc\u30c9\u3092\u52d5\u304b\u3059\u969b\u306b\u306f\u3001API\u306e\u5ba3\u8a00\u90e8\u5206\u309264\u30d3\u30c3\u30c8\u7528\u306b\u4fee\u6b63\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n<h4 id=\"HttpRequest\" class=\"style4a\">XMLHTTPRequest + ADODB.Stream\u3092\u4f7f\u3063\u3066\u30d5\u30a1\u30a4\u30eb\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b\u65b9\u6cd5<\/h4>\n<p>\u6b21\u306fXMLHTTPRequest\u3068ADODB.Stream\u3092\u4f7f\u3063\u3066\u30d5\u30a1\u30a4\u30eb\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b\u65b9\u6cd5\u306e\u7d39\u4ecb\u3067\u3059\u3002<\/p>\n<pre class=\"brush: vb; title: ; notranslate\" title=\"\">Option Explicit\r\n\r\nPublic Sub Sample02()\r\n  DownloadFile &quot;https:\/\/www.ka-net.org\/images\/logo.jpg&quot;, _\r\n               &quot;C:\\Test\\Sample_002.jpg&quot;\r\n  MsgBox &quot;\u51e6\u7406\u304c\u7d42\u4e86\u3057\u307e\u3057\u305f\u3002&quot;, vbInformation + vbSystemModal\r\nEnd Sub\r\n \r\nPrivate Sub DownloadFile(ByVal Url As String, ByVal SaveFilePath As String)\r\n'XMLHTTPRequest + ADODB.Stream\u3067\u30d5\u30a1\u30a4\u30eb\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\r\n  Dim req As Object\r\n  Const adTypeBinary = 1\r\n  Const adSaveCreateOverWrite = 2\r\n  \r\n  Set req = CreateObject(&quot;Msxml2.XMLHTTP&quot;)\r\n  req.Open &quot;GET&quot;, Url, False\r\n  \r\n  '\u30ad\u30e3\u30c3\u30b7\u30e5\u5bfe\u7b56\r\n  'http:\/\/vird2002.s8.xrea.com\/javascript\/XMLHttpRequest.html#XMLHttpRequest_Cache-Control\r\n  'http:\/\/www.atmarkit.co.jp\/ait\/articles\/0305\/10\/news002.html \u53c2\u8003\r\n  req.setRequestHeader &quot;Pragma&quot;, &quot;no-cache&quot;\r\n  req.setRequestHeader &quot;Cache-Control&quot;, &quot;no-cache&quot;\r\n  req.setRequestHeader &quot;If-Modified-Since&quot;, &quot;Thu, 01 Jun 1970 00:00:00 GMT&quot;\r\n  \r\n  req.Send\r\n  Select Case req.Status\r\n    Case 200\r\n      With CreateObject(&quot;ADODB.Stream&quot;)\r\n        .Type = adTypeBinary\r\n        .Open\r\n        .Write req.responseBody\r\n        .SaveToFile SaveFilePath, adSaveCreateOverWrite\r\n        .Close\r\n      End With\r\n    Case Else\r\n      MsgBox &quot;\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002&quot; &amp; vbCrLf &amp; _\r\n             &quot;\u30b9\u30c6\u30fc\u30bf\u30b9\u30b3\u30fc\u30c9\uff1a&quot; &amp; req.Status, _\r\n             vbCritical + vbSystemModal\r\n      Exit Sub\r\n  End Select\r\nEnd Sub<\/pre>\n<p>\u5927\u96d1\u628a\u306b\u8a00\u3048\u3070\u3001XMLHTTPRequest\u3092\u4f7f\u3063\u3066\u6307\u5b9a\u3057\u305fURL\u306b\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u6295\u3052\u3001\u53d7\u3051\u53d6\u3063\u305f\u30d0\u30a4\u30ca\u30ea\u5f62\u5f0f\u306e\u30ec\u30b9\u30dd\u30f3\u30b9\u3092ADODB.Stream\u3067\u30ed\u30fc\u30ab\u30eb\u306b\u4fdd\u5b58\u3059\u308b\u3001\u3068\u3044\u3046\u3084\u308a\u65b9\u3067\u3059\u3002<\/p>\n<p>XMLHTTPRequest\u3067\u4e0a\u624b\u304f\u3044\u304b\u306a\u3044\u5834\u5408\u306f\u3001\u4e0b\u8a18\u306e\u3088\u3046\u306bWinHttpRequest\u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<pre class=\"brush: vb; title: ; notranslate\" title=\"\">Private Sub DownloadFile(ByVal Url As String, ByVal SaveFilePath As String)\r\n'WinHttpRequest + ADODB.Stream\u3067\u30d5\u30a1\u30a4\u30eb\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\r\n  Dim req As Object\r\n  Const adTypeBinary = 1\r\n  Const adSaveCreateOverWrite = 2\r\n  \r\n  Set req = CreateObject(&quot;WinHttp.WinHttpRequest.5.1&quot;)\r\n  req.Open &quot;GET&quot;, Url, False\r\n  req.Send\r\n  Select Case req.Status\r\n    Case 200\r\n      With CreateObject(&quot;ADODB.Stream&quot;)\r\n        .Type = adTypeBinary\r\n        .Open\r\n        .Write req.responseBody\r\n        .SaveToFile SaveFilePath, adSaveCreateOverWrite\r\n        .Close\r\n      End With\r\n    Case Else\r\n      MsgBox &quot;\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002&quot; &amp; vbCrLf &amp; _\r\n             &quot;\u30b9\u30c6\u30fc\u30bf\u30b9\u30b3\u30fc\u30c9\uff1a&quot; &amp; req.Status, _\r\n             vbCritical + vbSystemModal\r\n      Exit Sub\r\n  End Select\r\nEnd Sub<\/pre>\n<h4 id=\"BasicAuth\" class=\"style4a\">Basic\u8a8d\u8a3c\u306b\u3088\u308b\u30a2\u30af\u30bb\u30b9\u5236\u9650\u304c\u304b\u304b\u3063\u305f\u30b5\u30a4\u30c8\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b\u65b9\u6cd5<\/h4>\n<p>\u6b21\u306fBasic\u8a8d\u8a3c\u306b\u3088\u308b\u30a2\u30af\u30bb\u30b9\u5236\u9650\u304c\u304b\u304b\u3063\u305f\u30b5\u30a4\u30c8\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b\u65b9\u6cd5\u306e\u7d39\u4ecb\u3067\u3059\u3002<\/p>\n<p>\u4f1a\u54e1\u5236\u306e\u30b5\u30a4\u30c8\u7b49\u3092\u958b\u3053\u3046\u3068\u3057\u305f\u3068\u304d\u3001\u4e0b\u56f3\u306e\u3088\u3046\u306b\u30e6\u30fc\u30b6\u30fc\u540d\u3068\u30d1\u30b9\u30ef\u30fc\u30c9\u306e\u5165\u529b\u3092\u6c42\u3081\u3089\u308c\u305f\u7d4c\u9a13\u306e\u3042\u308b\u4eba\u3082\u591a\u3044\u3060\u308d\u3046\u3068\u601d\u3044\u307e\u3059\u304c\u3001\u3053\u306e\u30bf\u30a4\u30d7\u306e\u8a8d\u8a3c\u3067\u591a\u3044\u306e\u304c<span style=\"color: #ff0000; font-weight: bold;\">Basic\u8a8d\u8a3c<\/span>\u3067\u3059\u3002<\/p>\n<p><a href=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/VBA_DownloadFile_06.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/VBA_DownloadFile_06.jpg\" alt=\"\" width=\"456\" height=\"418\" class=\"alignnone size-full wp-image-11280\" srcset=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/VBA_DownloadFile_06.jpg 456w, https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/VBA_DownloadFile_06-300x275.jpg 300w\" sizes=\"auto, (max-width: 456px) 100vw, 456px\" \/><\/a><\/p>\n<pre class=\"brush: vb; title: ; notranslate\" title=\"\">Option Explicit\r\n \r\nPublic Sub Sample03()\r\n  DownloadFileBasicAuth &quot;http:\/\/www.chama.ne.jp\/htaccess_sample\/index.htm&quot;, _\r\n                        &quot;C:\\Test\\BasicAuth.html&quot;, _\r\n                        &quot;chama&quot;, _\r\n                        &quot;1111&quot;\r\n  MsgBox &quot;\u51e6\u7406\u304c\u7d42\u4e86\u3057\u307e\u3057\u305f\u3002&quot;, vbInformation + vbSystemModal\r\nEnd Sub\r\n \r\nPrivate Sub DownloadFileBasicAuth(ByVal Url As String, _\r\n                                  ByVal SaveFilePath As String, _\r\n                                  ByVal UserName As String, _\r\n                                  ByVal PassWord As String)\r\n'XMLHTTPRequest + ADODB.Stream\u3067\u30d5\u30a1\u30a4\u30eb\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\r\n'http:\/\/ja.wikipedia.org\/wiki\/Basic%E8%AA%8D%E8%A8%BC \u53c2\u8003\r\n  Dim req As Object\r\n  Const adTypeBinary = 1\r\n  Const adSaveCreateOverWrite = 2\r\n  \r\n  Set req = CreateObject(&quot;Msxml2.XMLHTTP&quot;)\r\n  req.Open &quot;GET&quot;, Url, False\r\n  \r\n  'Authorization\u30d8\u30c3\u30c0\u30fc\u3067\u30e6\u30fc\u30b6\u30fc\u540d\u3068\u30d1\u30b9\u30ef\u30fc\u30c9\u9001\u4fe1\r\n  req.setRequestHeader &quot;Authorization&quot;, &quot;Basic &quot; &amp; EncodeBase64Str(UserName &amp; &quot;:&quot; &amp; PassWord)\r\n  \r\n  '\u30ad\u30e3\u30c3\u30b7\u30e5\u5bfe\u7b56\r\n  req.setRequestHeader &quot;Pragma&quot;, &quot;no-cache&quot;\r\n  req.setRequestHeader &quot;Cache-Control&quot;, &quot;no-cache&quot;\r\n  req.setRequestHeader &quot;If-Modified-Since&quot;, &quot;Thu, 01 Jun 1970 00:00:00 GMT&quot;\r\n  \r\n  req.Send\r\n  Select Case req.Status\r\n    Case 200\r\n      With CreateObject(&quot;ADODB.Stream&quot;)\r\n        .Type = adTypeBinary\r\n        .Open\r\n        .Write req.responseBody\r\n        .SaveToFile SaveFilePath, adSaveCreateOverWrite\r\n        .Close\r\n      End With\r\n    Case Else\r\n      MsgBox &quot;\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002&quot; &amp; vbCrLf &amp; _\r\n             &quot;\u30b9\u30c6\u30fc\u30bf\u30b9\u30b3\u30fc\u30c9\uff1a&quot; &amp; req.Status, _\r\n             vbCritical + vbSystemModal\r\n      Exit Sub\r\n  End Select\r\nEnd Sub\r\n \r\nPrivate Function EncodeBase64Str(ByVal str As String) As String\r\n'\u6587\u5b57\u5217\u3092Base64\u30a8\u30f3\u30b3\u30fc\u30c9\r\n  Dim ret As String\r\n  Dim d() As Byte\r\n  Const adTypeBinary = 1\r\n  Const adTypeText = 2\r\n  \r\n  ret = &quot;&quot; '\u521d\u671f\u5316\r\n  On Error Resume Next\r\n  With CreateObject(&quot;ADODB.Stream&quot;)\r\n    .Open\r\n    .Type = adTypeText\r\n    .Charset = &quot;UTF-8&quot;\r\n    .WriteText str\r\n    .Position = 0\r\n    .Type = adTypeBinary\r\n    .Position = 3\r\n    d = .Read()\r\n    .Close\r\n  End With\r\n  With CreateObject(&quot;MSXML2.DOMDocument&quot;).createElement(&quot;base64&quot;)\r\n    .DataType = &quot;bin.base64&quot;\r\n    .nodeTypedValue = d\r\n    ret = .Text\r\n  End With\r\n  On Error GoTo 0\r\n  EncodeBase64Str = ret\r\nEnd Function<\/pre>\n<p>\u4ed5\u7d44\u307f\u3068\u3057\u3066\u306f\u3001Authorization\u30d8\u30c3\u30c0\u30fc\u3067\u30e6\u30fc\u30b6\u30fc\u540d\u3068\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u4ed8\u3051\u3066\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u6295\u3052\u3001\u8a8d\u8a3c\u306b\u6210\u529f\u3057\u305f\u3089\u30d5\u30a1\u30a4\u30eb\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b\u3001\u3068\u3044\u3046\u3084\u308a\u65b9\u3067\u3059\u3002<\/p>\n<p><a href=\"http:\/\/ja.wikipedia.org\/wiki\/Basic%E8%AA%8D%E8%A8%BC\" title=\"Basic\u8a8d\u8a3c\" target=\"_blank\">Wikipedia\u306e\u8a18\u4e8b<\/a>\u306b\u3082\u66f8\u3044\u3066\u3042\u308b\u901a\u308a\u3001Basic\u8a8d\u8a3c\u3067\u306f\u30e6\u30fc\u30b6\u30fc\u540d\u3068\u30d1\u30b9\u30ef\u30fc\u30c9\u3092Base64\u30a8\u30f3\u30b3\u30fc\u30c9\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u305f\u3081\u3001\u305d\u306e\u305f\u3081\u306e\u95a2\u6570\u300c<span style=\"color: #ff0000; font-weight: bold;\">EncodeBase64Str<\/span>\u300d\u3092\u7528\u610f\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<h4 id=\"FormAuth\" class=\"style4a\">\u30d5\u30a9\u30fc\u30e0\u8a8d\u8a3c\u306b\u3088\u308b\u30a2\u30af\u30bb\u30b9\u5236\u9650\u304c\u304b\u304b\u3063\u305f\u30b5\u30a4\u30c8\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b\u65b9\u6cd5<\/h4>\n<p>\u6b21\u306f\u3001\u4e0b\u56f3\u306e\u3088\u3046\u306bWeb\u30da\u30fc\u30b8\u4e0a\u3067\u30e6\u30fc\u30b6\u30fc\u540d\u3084\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u5165\u529b\u3057\u3066\u30ed\u30b0\u30a4\u30f3\u3059\u308b\u306e\u304c\u5fc5\u8981\u306a\u30b5\u30a4\u30c8(<span style=\"color: #ff0000; font-weight: bold;\">\u30d5\u30a9\u30fc\u30e0\u8a8d\u8a3c<\/span>\u3068\u3057\u307e\u3059)\u304b\u3089\u30d5\u30a1\u30a4\u30eb\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b\u65b9\u6cd5\u3092\u7d39\u4ecb\u3057\u307e\u3059\u3002<\/p>\n<p><a href=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/VBA_DownloadFile_02.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/VBA_DownloadFile_02.jpg\" alt=\"\" width=\"349\" height=\"118\" class=\"alignnone size-full wp-image-4857\" srcset=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/VBA_DownloadFile_02.jpg 349w, https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/VBA_DownloadFile_02-300x101.jpg 300w\" sizes=\"auto, (max-width: 349px) 100vw, 349px\" \/><\/a><\/p>\n<p>\u3053\u3053\u3067\u306f\u3001\u4e0b\u8a18\u306e\u3088\u3046\u306b\u3054\u304f\u7c21\u5358\u306a\u69cb\u6210\u306e\u30c6\u30b9\u30c8\u74b0\u5883\u3092\u7528\u610f\u3057\u3066\u307f\u307e\u3057\u305f\u3002<br \/>\n<span style=\"color: #ff0000; font-weight: bold;\">.htaccess<\/span>\u3067\u30d5\u30a1\u30a4\u30eb\u306e\u76f4\u30a2\u30af\u30bb\u30b9\u3092\u7981\u6b62\u3057\u3001<span style=\"color: #ff0000; font-weight: bold;\">auth.php<\/span>\u3067\u8a8d\u8a3c\u306b\u6210\u529f\u3057\u306a\u3044\u3068<span style=\"color: #ff0000; font-weight: bold;\">sample.pdf<\/span>\u30d5\u30a1\u30a4\u30eb\u304c\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3067\u304d\u306a\u3044\u3088\u3046\u306a\u4ed5\u7d44\u307f\u3067\u3059\u3002<\/p>\n<table>\n<tr>\n<td colspan=\"4\" style=\"border-style:none;\">localhost\/auth<\/td>\n<\/tr>\n<tr>\n<td style=\"border-style:none;\">&nbsp;<\/td>\n<td colspan=\"2\" style=\"border-style:none;\">1. login.html<\/td>\n<td style=\"border-style:none;\">\u30ed\u30b0\u30a4\u30f3\u30da\u30fc\u30b8<\/td>\n<\/tr>\n<tr>\n<td style=\"border-style:none;\">&nbsp;<\/td>\n<td colspan=\"2\" style=\"border-style:none;\">2. auth.php<\/td>\n<td style=\"border-style:none;\">\u8a8d\u8a3c\u7528\u30da\u30fc\u30b8<\/td>\n<\/tr>\n<tr>\n<td style=\"border-style:none;\">&nbsp;<\/td>\n<td colspan=\"2\" style=\"border-style:none;\">3. down.php<\/td>\n<td style=\"border-style:none;\">\u30d5\u30a1\u30a4\u30eb\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u7528\u30da\u30fc\u30b8<\/td>\n<\/tr>\n<tr>\n<td style=\"border-style:none;\">&nbsp;<\/td>\n<td colspan=\"3\" style=\"border-style:none;\">\/files<\/td>\n<\/tr>\n<tr>\n<td style=\"border-style:none;\">&nbsp;<\/td>\n<td style=\"border-style:none;\">&nbsp;&nbsp;&nbsp;&nbsp;<\/td>\n<td style=\"border-style:none;\">4. .htaccess<\/td>\n<td style=\"border-style:none;\">\u30a2\u30af\u30bb\u30b9\u5236\u9650\u7528\u30d5\u30a1\u30a4\u30eb<\/td>\n<\/tr>\n<tr>\n<td style=\"border-style:none;\">&nbsp;<\/td>\n<td style=\"border-style:none;\">&nbsp;&nbsp;&nbsp;&nbsp;<\/td>\n<td style=\"border-style:none;\">5. sample.pdf<\/td>\n<td style=\"border-style:none;\">\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u305f\u3044\u30d5\u30a1\u30a4\u30eb<\/td>\n<\/tr>\n<\/table>\n<p><span style=\"color: #ff0000; font-weight: bold;\">\u203b \u4e0b\u8a18\u30b3\u30fc\u30c9\u306f\u3042\u304f\u307e\u3067\u3082\u30c6\u30b9\u30c8\u7528\u306b\u66f8\u3044\u305f\u7c21\u6613\u7684\u306a\u8a8d\u8a3c\u306e\u30b3\u30fc\u30c9\u3067\u3059\u3002\u5b9f\u969b\u306e\u30b5\u30a4\u30c8\u306b\u306f\u4f7f\u7528\u3057\u306a\u3044\u3067\u304f\u3060\u3055\u3044\u3002<\/span><\/p>\n<h5 class=\"style5a\">1. login.html<\/h5>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">&lt;!DOCTYPE html&gt;\r\n&lt;html&gt;\r\n  &lt;head&gt;\r\n    &lt;meta charset=&quot;UTF-8&quot;&gt;\r\n    &lt;title&gt;\u8a8d\u8a3c\u30b5\u30f3\u30d7\u30eb&lt;\/title&gt;\r\n  &lt;\/head&gt;\r\n  &lt;body&gt;\r\n    &lt;form method=&quot;post&quot; action=&quot;auth.php&quot;&gt;\r\n      &lt;table&gt;\r\n        &lt;tr&gt;\r\n          &lt;td&gt;\u30e6\u30fc\u30b6\u30fc\u540d\uff1a&lt;\/td&gt;\r\n          &lt;td&gt;&lt;input name=&quot;username&quot; type=&quot;text&quot; size=&quot;30&quot;&gt;&lt;\/td&gt;\r\n        &lt;\/tr&gt;\r\n        &lt;tr&gt;\r\n          &lt;td&gt;\u30d1\u30b9\u30ef\u30fc\u30c9\uff1a&lt;\/td&gt;\r\n          &lt;td&gt;&lt;input name=&quot;password&quot; type=&quot;text&quot; size=&quot;30&quot;&gt;&lt;\/td&gt;\r\n        &lt;\/tr&gt;\r\n        &lt;tr&gt;\r\n          &lt;td colspan=&quot;2&quot;&gt;&lt;input type=&quot;submit&quot; value=&quot;\u30ed\u30b0\u30a4\u30f3&quot;&gt;&lt;\/td&gt;\r\n        &lt;\/tr&gt;\r\n      &lt;\/table&gt;\r\n    &lt;\/form&gt;\r\n  &lt;\/body&gt;\r\n&lt;\/html&gt;<\/pre>\n<h5 class=\"style5a\">2. auth.php<\/h5>\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">&lt;?php\r\n  define(&quot;PW&quot;, &quot;pass&quot;); \/\/\u30d1\u30b9\u30ef\u30fc\u30c9\r\n  define(&quot;UN&quot;, &quot;user&quot;); \/\/\u30e6\u30fc\u30b6\u30fc\u540d\r\n  if(isset($_POST&#x5B;&quot;password&quot;]) &amp;&amp; isset($_POST&#x5B;&quot;username&quot;])) {\r\n    if($_POST&#x5B;&quot;password&quot;]===PW &amp;&amp; $_POST&#x5B;&quot;username&quot;]===UN){\r\n      session_start();\r\n      $_SESSION&#x5B;&quot;password&quot;] = md5(PW);\r\n      $_SESSION&#x5B;&quot;username&quot;] = md5(UN);\r\n      print &quot;&lt;!DOCTYPE html&gt;\\n&quot;;\r\n      print &quot;&lt;html&gt;\\n&quot;;\r\n      print &quot;  &lt;head&gt;\\n&quot;;\r\n      print &quot;    &lt;meta charset=\\&quot;UTF-8\\&quot;&gt;\\n&quot;;\r\n      print &quot;    &lt;title&gt;\u8a8d\u8a3c\u78ba\u8a8d&lt;\/title&gt;\\n&quot;;\r\n      print &quot;  &lt;\/head&gt;\\n&quot;;\r\n      print &quot;  &lt;body&gt;\\n&quot;;\r\n      print '    &lt;a href=&quot;.\/down.php&quot;&gt;\u30d5\u30a1\u30a4\u30eb\u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9&lt;\/a&gt;' . &quot;\\n&quot;;\r\n      print &quot;  &lt;\/body&gt;\\n&quot;;\r\n      print &quot;&lt;\/html&gt;&quot;;\r\n    }else{\r\n      http_response_code(401);\r\n    }\r\n  }else{\r\n    http_response_code(403);\r\n  }\r\n?&gt;<\/pre>\n<h5 class=\"style5a\">3. down.php<\/h5>\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">&lt;?php\r\n  define(&quot;PW&quot;, &quot;pass&quot;); \/\/\u30d1\u30b9\u30ef\u30fc\u30c9\r\n  define(&quot;UN&quot;, &quot;user&quot;); \/\/\u30e6\u30fc\u30b6\u30fc\u540d\r\n  session_start();\r\n  if(isset($_SESSION&#x5B;&quot;password&quot;]) &amp;&amp; isset($_SESSION&#x5B;&quot;username&quot;])) {\r\n    if($_SESSION&#x5B;&quot;password&quot;]===md5(PW) &amp;&amp; $_SESSION&#x5B;&quot;username&quot;]===md5(UN)){\r\n      $file=&quot;.\/files\/sample.pdf&quot;;\r\n      header(&quot;Content-Type: application\/octet-stream&quot;);\r\n      header(&quot;Content-Disposition: attachment; filename=sample.pdf&quot;);\r\n      header(&quot;Content-Length: &quot; . filesize($file));\r\n      readfile($file);\r\n    }else{\r\n      http_response_code(401);\r\n    }\r\n  }else{\r\n    http_response_code(403);\r\n  }\r\n  session_destroy();\r\n?&gt;<\/pre>\n<h5 class=\"style5a\">4. .htaccess<\/h5>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">&lt;Files ~ &quot;\\.(dat|log|csv|pdf)$&quot;&gt;\r\n  deny from all\r\n&lt;\/Files&gt;<\/pre>\n<p>\u4e0a\u8a18\u30c6\u30b9\u30c8\u74b0\u5883\u3067\u30d5\u30a1\u30a4\u30eb\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b\u305f\u3081\u306eVBA\u30b3\u30fc\u30c9\u306f\u4e0b\u8a18\u306e\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<pre class=\"brush: vb; title: ; notranslate\" title=\"\">Option Explicit\r\n \r\nPublic Sub Sample04()\r\n  Dim req As Object\r\n  Dim dat As Variant\r\n   \r\n  Const UserName = &quot;user&quot; '\u30e6\u30fc\u30b6\u30fc\u540d\r\n  Const PassWord = &quot;pass&quot; '\u30d1\u30b9\u30ef\u30fc\u30c9\r\n  Const AuthUrl = &quot;https:\/\/localhost\/auth\/auth.php&quot; '\u8a8d\u8a3c\u30da\u30fc\u30b8\u306eURL\r\n  Const FileUrl = &quot;https:\/\/localhost\/auth\/down.php&quot; '\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u5bfe\u8c61\u306eURL\r\n  Const SaveFilePath = &quot;C:\\Test\\MyFile.pdf&quot;\r\n  \r\n  Const adTypeBinary = 1\r\n  Const adSaveCreateOverWrite = 2\r\n  \r\n  Set req = CreateObject(&quot;Msxml2.XMLHTTP&quot;)\r\n  \r\n  '\u8a8d\u8a3c\r\n  req.Open &quot;POST&quot;, AuthUrl, False\r\n  dat = &quot;username=&quot; &amp; UserName &amp; &quot;&amp;password=&quot; &amp; PassWord '\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u8a2d\u5b9a\r\n  req.setRequestHeader &quot;Content-Type&quot;, &quot;application\/x-www-form-urlencoded&quot;\r\n  req.Send dat\r\n  If req.Status &lt;&gt; 200 Then\r\n    MsgBox &quot;\u8a8d\u8a3c\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002&quot; &amp; vbCrLf &amp; _\r\n           &quot;\u51e6\u7406\u3092\u4e2d\u6b62\u3057\u307e\u3059\u3002&quot;, vbCritical + vbSystemModal\r\n    Exit Sub\r\n  End If\r\n  \r\n  '\u30d5\u30a1\u30a4\u30eb\u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\r\n  req.Open &quot;GET&quot;, FileUrl, False\r\n  '\u30ad\u30e3\u30c3\u30b7\u30e5\u5bfe\u7b56\r\n  req.setRequestHeader &quot;Pragma&quot;, &quot;no-cache&quot;\r\n  req.setRequestHeader &quot;Cache-Control&quot;, &quot;no-cache&quot;\r\n  req.setRequestHeader &quot;If-Modified-Since&quot;, &quot;Thu, 01 Jun 1970 00:00:00 GMT&quot;\r\n  req.Send\r\n  Select Case req.Status\r\n    Case 200\r\n      With CreateObject(&quot;ADODB.Stream&quot;)\r\n        .Type = adTypeBinary\r\n        .Open\r\n        .Write req.responseBody\r\n        .SaveToFile SaveFilePath, adSaveCreateOverWrite\r\n        .Close\r\n      End With\r\n    Case Else\r\n      MsgBox &quot;\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002&quot; &amp; vbCrLf &amp; _\r\n             &quot;\u30b9\u30c6\u30fc\u30bf\u30b9\u30b3\u30fc\u30c9\uff1a&quot; &amp; req.Status, _\r\n             vbCritical + vbSystemModal\r\n      Exit Sub\r\n  End Select\r\n  \r\n  MsgBox &quot;\u51e6\u7406\u304c\u7d42\u4e86\u3057\u307e\u3057\u305f\u3002&quot;, vbInformation + vbSystemModal\r\nEnd Sub<\/pre>\n<p>\u30e6\u30fc\u30b6\u30fc\u540d\u3084\u30d1\u30b9\u30ef\u30fc\u30c9\u3068\u3044\u3063\u305f\u30d1\u30e9\u30e1\u30fc\u30bf(\u4e0a\u8a18\u30b3\u30fc\u30c9\u3067\u306f<span style=\"color: #ff0000; font-weight: bold;\">dat<\/span>)\u3092\u9001\u4fe1\u3057\u3001\u8a8d\u8a3c\u3092\u901a\u904e\u3057\u3066\u304b\u3089\u30d5\u30a1\u30a4\u30eb\u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3092\u884c\u3046\u3084\u308a\u65b9\u3067\u3059\u3002<br \/>\n(\u8a8d\u8a3c\u306e\u3084\u308a\u65b9\u306f\u8272\u3005\u3042\u308b\u306e\u3067\u3001\u5fc5\u305a\u3057\u3082\u4e0a\u8a18\u30b3\u30fc\u30c9\u306e\u65b9\u6cd5\u304c\u4f7f\u3048\u308b\u308f\u3051\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002)<\/p>\n<p>\u3053\u306e\u3068\u304d\u9001\u4fe1\u3059\u308b\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u306b\u3064\u3044\u3066\u306f\u3001Internet Explorer\u306e<a href=\"http:\/\/msdn.microsoft.com\/ja-jp\/library\/gg589512.aspx\" title=\"F12 \u958b\u767a\u8005\u30c4\u30fc\u30eb\u306b\u3064\u3044\u3066 (Windows)\" target=\"_blank\">\u958b\u767a\u8005\u30c4\u30fc\u30eb<\/a>(\u4e0b\u56f3\u306fInternet Explorer 11)\u3092\u4f7f\u3063\u3066\u3001\u5b9f\u969b\u306b\u30ed\u30b0\u30a4\u30f3\u3057\u305f\u3068\u304d\u306e\u6319\u52d5\u3092\u30ad\u30e3\u30d7\u30c1\u30e3\u30fc\u3059\u308b\u3053\u3068\u3067\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002<\/p>\n<p><a href=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/VBA_DownloadFile_07.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/VBA_DownloadFile_07.jpg\" alt=\"\" width=\"819\" height=\"457\" class=\"alignnone size-full wp-image-11281\" srcset=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/VBA_DownloadFile_07.jpg 819w, https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/VBA_DownloadFile_07-300x167.jpg 300w, https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/VBA_DownloadFile_07-768x429.jpg 768w\" sizes=\"auto, (max-width: 819px) 100vw, 819px\" \/><\/a><\/p>\n<p><a href=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/VBA_DownloadFile_08.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/VBA_DownloadFile_08.jpg\" alt=\"\" width=\"819\" height=\"602\" class=\"alignnone size-full wp-image-11282\" srcset=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/VBA_DownloadFile_08.jpg 819w, https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/VBA_DownloadFile_08-300x221.jpg 300w, https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/VBA_DownloadFile_08-768x565.jpg 768w\" sizes=\"auto, (max-width: 819px) 100vw, 819px\" \/><\/a><\/p>\n<p>POST\u3057\u305f\u5185\u5bb9\u306f\u300c<a href=\"https:\/\/www.telerik.com\/fiddler\" title=\"Fiddler - Free Web Debugging Proxy - Telerik\" target=\"_blank\">Fiddler<\/a>\u300d\u7b49\u306e\u30c4\u30fc\u30eb\u3067\u3082\u78ba\u8a8d\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<h4 id=\"NotificationBar\" class=\"style4a\">\u901a\u77e5\u30d0\u30fc\/Internet Explorer\u30c0\u30a4\u30a2\u30ed\u30b0\u3092\u64cd\u4f5c\u3057\u3066\u30d5\u30a1\u30a4\u30eb\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b\u65b9\u6cd5<\/h4>\n<p>\u6700\u5f8c\u306b\u7d39\u4ecb\u3059\u308b\u306e\u304c\u3001\u30d5\u30a1\u30a4\u30eb\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3088\u3046\u3068\u3057\u305f\u3068\u304d\u306b\u8868\u793a\u3055\u308c\u308bInternet Explorer\u306e<span style=\"color: #ff0000; font-weight: bold;\">\u901a\u77e5\u30d0\u30fc<\/span>\u3084<span style=\"color: #ff0000; font-weight: bold;\">Internet Explorer\u30c0\u30a4\u30a2\u30ed\u30b0<\/span>((\u30d5\u30a1\u30a4\u30eb\u540d) \u3067\u884c\u3046\u64cd\u4f5c\u3092\u9078\u3093\u3067\u304f\u3060\u3055\u3044\u30c0\u30a4\u30a2\u30ed\u30b0)\u3092\u64cd\u4f5c\u3057\u3066\u30d5\u30a1\u30a4\u30eb\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b\u65b9\u6cd5\u3067\u3059\u3002<\/p>\n<p><a href=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/VBA_DownloadFile_09.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/VBA_DownloadFile_09.jpg\" alt=\"\" width=\"649\" height=\"145\" class=\"alignnone size-full wp-image-11283\" srcset=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/VBA_DownloadFile_09.jpg 649w, https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/VBA_DownloadFile_09-300x67.jpg 300w\" sizes=\"auto, (max-width: 649px) 100vw, 649px\" \/><\/a><\/p>\n<p><a href=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/VBA_DownloadFile_10.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/VBA_DownloadFile_10.jpg\" alt=\"\" width=\"567\" height=\"379\" class=\"alignnone size-full wp-image-11284\" srcset=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/VBA_DownloadFile_10.jpg 567w, https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/VBA_DownloadFile_10-300x201.jpg 300w\" sizes=\"auto, (max-width: 567px) 100vw, 567px\" \/><\/a><\/p>\n<p>\u305f\u3060\u3057\u3001\u3053\u306e\u65b9\u6cd5\u306fOS\u3084Internet Explorer\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u306b\u3088\u3063\u3066\u306f\u52d5\u4f5c\u3057\u306a\u304f\u306a\u308b\u5834\u5408\u304c\u3042\u308a\u3001\u74b0\u5883\u306b\u5927\u304d\u304f\u4f9d\u5b58\u3059\u308b\u305f\u3081\u3001\u79c1\u3068\u3057\u3066\u306f<span style=\"color: #ff0000; font-weight: bold;\">\u6b63\u76f4\u304a\u85a6\u3081\u3057\u307e\u305b\u3093\u3002<\/span><\/p>\n<p><span style=\"color: #ff0000; font-weight: bold;\">\u203b UIAutomationClient\u53c2\u7167\u6642\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3059\u308b\u5834\u5408\u306f\u300c<a href=\"\/\/www.ka-net.org\/blog\/?p=4617\" title=\"UIAutomationClient\u53c2\u7167\u6642\u306bDLL\u8aad\u307f\u8fbc\u307f\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u305f\u6642\u306e\u5bfe\u51e6\u6cd5\" target=\"_blank\">UIAutomationClient\u53c2\u7167\u6642\u306bDLL\u8aad\u307f\u8fbc\u307f\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u305f\u6642\u306e\u5bfe\u51e6\u6cd5<\/a>\u300d\u53c2\u7167<\/span><\/p>\n<pre class=\"brush: vb; title: ; notranslate\" title=\"\">Option Explicit\r\n\r\nPublic Sub Sample05()\r\n'\u901a\u77e5\u30d0\u30fc\u3092\u64cd\u4f5c\u3057\u3066\u30d5\u30a1\u30a4\u30eb\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\r\n  Dim elmAnc As Object\r\n  Const READYSTATE_COMPLETE = 4\r\n  \r\n  With CreateObject(&quot;InternetExplorer.Application&quot;)\r\n    .Visible = True\r\n    .Navigate &quot;https:\/\/saigai.gsi.go.jp\/jusho\/download\/pref\/47.html&quot;\r\n    \r\n    While .Busy Or .ReadyState &lt;&gt; READYSTATE_COMPLETE\r\n      DoEvents\r\n    Wend\r\n    \r\n    For Each elmAnc In .document.getElementsByTagName(&quot;a&quot;)\r\n      If InStr(LCase(elmAnc.href), &quot;.zip&quot;) Then\r\n        elmAnc.Click '\u9069\u5f53\u306a\u30ea\u30f3\u30af\u3092\u30af\u30ea\u30c3\u30af \u2192 \u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u901a\u77e5\u30d0\u30fc\u8868\u793a\r\n        Exit For\r\n      End If\r\n    Next\r\n    \r\n    DownloadFileNbOrDlg .Hwnd, &quot;C:\\Test\\TestFile001.zip&quot;\r\n    .Quit\r\n  End With\r\nEnd Sub\r\n\r\nPublic Sub Sample06()\r\n'Internet Explorer\u30c0\u30a4\u30a2\u30ed\u30b0\u3092\u64cd\u4f5c\u3057\u3066\u30d5\u30a1\u30a4\u30eb\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\r\n  Dim elmAnc As Object\r\n  Const READYSTATE_COMPLETE = 4\r\n  \r\n  With CreateObject(&quot;InternetExplorer.Application&quot;)\r\n    .Visible = True\r\n    .Navigate &quot;http:\/\/www.gender.go.jp\/policy\/suishin_law\/csv_dl\/index.html&quot;\r\n    \r\n    While .Busy Or .ReadyState &lt;&gt; READYSTATE_COMPLETE\r\n      DoEvents\r\n    Wend\r\n    \r\n    For Each elmAnc In .document.getElementsByTagName(&quot;a&quot;)\r\n      If InStr(LCase(elmAnc.href), &quot;.csv&quot;) Then\r\n        elmAnc.Click '\u9069\u5f53\u306a\u30ea\u30f3\u30af\u3092\u30af\u30ea\u30c3\u30af \u2192 Internet Explorer\u30c0\u30a4\u30a2\u30ed\u30b0\u8868\u793a\r\n        Exit For\r\n      End If\r\n    Next\r\n    \r\n    DownloadFileNbOrDlg .Hwnd, &quot;C:\\Test\\TestFile002.csv&quot;\r\n    .Quit\r\n  End With\r\nEnd Sub\r\n\r\nPrivate Sub DownloadFileNbOrDlg(ByVal hIE As Long, ByVal SaveFilePath As String)\r\n'\u901a\u77e5\u30d0\u30fc\/Internet Explorer\u30c0\u30a4\u30a2\u30ed\u30b0\u3092\u64cd\u4f5c\u3057\u3066\u30d5\u30a1\u30a4\u30eb\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\r\n'\u203b UIAutomationClient(%SYSTEMROOT%\\system32\\UIAutomationCore.dll)\u8981\u53c2\u7167\r\n'\r\n' - hIE:InternetExplorer\u306e\u30cf\u30f3\u30c9\u30eb\r\n' - SaveFilePath:\u30d5\u30a1\u30a4\u30eb\u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u5148\r\n'\r\n'http:\/\/okwave.jp\/qa\/q8121989.html\r\n'http:\/\/okwave.jp\/qa\/q8320348.html\r\n'https:\/\/gist.github.com\/kumatti1\/7957796 \u53c2\u8003\r\n\r\n  Dim uiAuto As CUIAutomation\r\n  Dim elmIE As IUIAutomationElement\r\n  Dim elmNotificationBar As IUIAutomationElement\r\n  Dim elmSaveSplitButton As IUIAutomationElement\r\n  Dim elmSaveDropDownButton As IUIAutomationElement\r\n  Dim elmSaveMenu As IUIAutomationElement\r\n  Dim elmSaveMenuItem As IUIAutomationElement\r\n  Dim elmIEDialog As IUIAutomationElement\r\n  Dim elmSaveAsButton As IUIAutomationElement\r\n  Dim elmSaveAsWindow As IUIAutomationElement\r\n  Dim elmFileNameEdit As IUIAutomationElement\r\n  Dim elmSaveButton As IUIAutomationElement\r\n  Dim elmNotificationText As IUIAutomationElement\r\n  Dim elmCloseButton As IUIAutomationElement\r\n  Dim iptn As IUIAutomationInvokePattern\r\n  Dim vptn As IUIAutomationValuePattern\r\n  Const ROLE_SYSTEM_BUTTONDROPDOWN = &amp;H38&amp;\r\n  \r\n  Set uiAuto = New CUIAutomation\r\n  Set elmIE = uiAuto.ElementFromHandle(ByVal hIE)\r\n  \r\n  '\u30d5\u30a1\u30a4\u30eb\u3092\u4e8b\u524d\u306b\u524a\u9664\r\n  With CreateObject(&quot;Scripting.FileSystemObject&quot;)\r\n    If .FileExists(SaveFilePath) Then .DeleteFile SaveFilePath, True\r\n  End With\r\n  \r\n  Do\r\n    '&#x5B;\u901a\u77e5\u30d0\u30fc]\u53d6\u5f97\r\n    Set elmNotificationBar = _\r\n      GetElement(uiAuto, _\r\n                 elmIE, _\r\n                 UIA_AutomationIdPropertyId, _\r\n                 &quot;IENotificationBar&quot;, _\r\n                 UIA_ToolBarControlTypeId)\r\n    \r\n    '&#x5B;Internet Explorer]\u30c0\u30a4\u30a2\u30ed\u30b0((\u30d5\u30a1\u30a4\u30eb\u540d) \u3067\u884c\u3046\u64cd\u4f5c\u3092\u9078\u3093\u3067\u304f\u3060\u3055\u3044)\u53d6\u5f97\r\n    Set elmIEDialog = _\r\n      GetElement(uiAuto, _\r\n                 elmIE, _\r\n                 UIA_NamePropertyId, _\r\n                 &quot;Internet Explorer&quot;, _\r\n                 UIA_WindowControlTypeId)\r\n    DoEvents\r\n  Loop Until (Not elmNotificationBar Is Nothing) Or _\r\n             (Not elmIEDialog Is Nothing)\r\n  \r\n  '***** \u901a\u77e5\u30d0\u30fc\u64cd\u4f5c\u3053\u3053\u304b\u3089 *****\r\n  If Not elmNotificationBar Is Nothing Then\r\n    '&#x5B;\u4fdd\u5b58]\u30b9\u30d7\u30ea\u30c3\u30c8\u30dc\u30bf\u30f3\u53d6\u5f97\r\n    Set elmSaveSplitButton = _\r\n      GetElement(uiAuto, _\r\n                 elmNotificationBar, _\r\n                 UIA_NamePropertyId, _\r\n                 &quot;\u4fdd\u5b58&quot;, _\r\n                 UIA_SplitButtonControlTypeId)\r\n    If elmSaveSplitButton Is Nothing Then GoTo Fin\r\n    \r\n    '&#x5B;\u4fdd\u5b58]\u30c9\u30ed\u30c3\u30d7\u30c0\u30a6\u30f3\u53d6\u5f97\r\n    Set elmSaveDropDownButton = _\r\n      GetElement(uiAuto, _\r\n                 elmNotificationBar, _\r\n                 UIA_LegacyIAccessibleRolePropertyId, _\r\n                 ROLE_SYSTEM_BUTTONDROPDOWN, _\r\n                 UIA_SplitButtonControlTypeId)\r\n    If elmSaveDropDownButton Is Nothing Then GoTo Fin\r\n    \r\n    '&#x5B;\u4fdd\u5b58]\u30c9\u30ed\u30c3\u30d7\u30c0\u30a6\u30f3\u62bc\u4e0b -&gt; &#x5B;\u540d\u524d\u3092\u4ed8\u3051\u3066\u4fdd\u5b58(A)]\u30dc\u30bf\u30f3\u62bc\u4e0b\r\n    Set iptn = elmSaveDropDownButton.GetCurrentPattern(UIA_InvokePatternId)\r\n    Do\r\n      iptn.Invoke\r\n      Set elmSaveMenu = _\r\n        GetElement(uiAuto, _\r\n                   uiAuto.GetRootElement, _\r\n                   UIA_ClassNamePropertyId, _\r\n                   &quot;#32768&quot;, _\r\n                   UIA_MenuControlTypeId)\r\n      DoEvents\r\n    Loop While elmSaveMenu Is Nothing\r\n    Set elmSaveMenuItem = _\r\n      GetElement(uiAuto, _\r\n                 elmSaveMenu, _\r\n                 UIA_NamePropertyId, _\r\n                 &quot;\u540d\u524d\u3092\u4ed8\u3051\u3066\u4fdd\u5b58(A)&quot;, _\r\n                 UIA_MenuItemControlTypeId)\r\n    If elmSaveMenuItem Is Nothing Then GoTo Fin\r\n    Set iptn = elmSaveMenuItem.GetCurrentPattern(UIA_InvokePatternId)\r\n    iptn.Invoke\r\n  End If\r\n  '***** \u901a\u77e5\u30d0\u30fc\u64cd\u4f5c\u3053\u3053\u307e\u3067 *****\r\n  \r\n  '***** Internet Explorer\u30c0\u30a4\u30a2\u30ed\u30b0\u64cd\u4f5c\u3053\u3053\u304b\u3089 *****\r\n  If Not elmIEDialog Is Nothing Then\r\n    Set elmSaveAsButton = _\r\n      GetElement(uiAuto, _\r\n                 elmIEDialog, _\r\n                 UIA_NamePropertyId, _\r\n                 &quot;\u540d\u524d\u3092\u4ed8\u3051\u3066\u4fdd\u5b58(A)&quot;, _\r\n                 UIA_ButtonControlTypeId)\r\n    If elmSaveAsButton Is Nothing Then GoTo Fin\r\n    Set iptn = elmSaveAsButton.GetCurrentPattern(UIA_InvokePatternId)\r\n    iptn.Invoke\r\n  End If\r\n  '***** Internet Explorer\u30c0\u30a4\u30a2\u30ed\u30b0\u64cd\u4f5c\u3053\u3053\u307e\u3067 *****\r\n  \r\n  If (elmNotificationBar Is Nothing) And (elmIEDialog Is Nothing) Then GoTo Fin\r\n  \r\n  '***** \u540d\u524d\u3092\u4ed8\u3051\u3066\u4fdd\u5b58\u64cd\u4f5c\u3053\u3053\u304b\u3089 *****\r\n  '&#x5B;\u540d\u524d\u3092\u4ed8\u3051\u3066\u4fdd\u5b58]\u30c0\u30a4\u30a2\u30ed\u30b0\u53d6\u5f97\r\n  Do\r\n    Set elmSaveAsWindow = _\r\n      GetElement(uiAuto, _\r\n                 uiAuto.GetRootElement, _\r\n                 UIA_NamePropertyId, _\r\n                 &quot;\u540d\u524d\u3092\u4ed8\u3051\u3066\u4fdd\u5b58&quot;, _\r\n                 UIA_WindowControlTypeId)\r\n    DoEvents\r\n  Loop While elmSaveAsWindow Is Nothing\r\n  \r\n  '&#x5B;\u30d5\u30a1\u30a4\u30eb\u540d]\u6b04\u53d6\u5f97 -&gt; \u30d5\u30a1\u30a4\u30eb\u30d1\u30b9\u5165\u529b\r\n  Set elmFileNameEdit = _\r\n    GetElement(uiAuto, _\r\n               elmSaveAsWindow, _\r\n               UIA_NamePropertyId, _\r\n               &quot;\u30d5\u30a1\u30a4\u30eb\u540d:&quot;, _\r\n               UIA_EditControlTypeId)\r\n  If elmFileNameEdit Is Nothing Then GoTo Fin\r\n  Set vptn = elmFileNameEdit.GetCurrentPattern(UIA_ValuePatternId)\r\n  vptn.SetValue SaveFilePath\r\n  \r\n  '&#x5B;\u4fdd\u5b58(S)]\u30dc\u30bf\u30f3\u62bc\u4e0b\r\n  Set elmSaveButton = _\r\n    GetElement(uiAuto, _\r\n               elmSaveAsWindow, _\r\n               UIA_NamePropertyId, _\r\n               &quot;\u4fdd\u5b58(S)&quot;, _\r\n               UIA_ButtonControlTypeId)\r\n  If elmSaveButton Is Nothing Then GoTo Fin\r\n  Set iptn = elmSaveButton.GetCurrentPattern(UIA_InvokePatternId)\r\n  iptn.Invoke\r\n  '***** \u540d\u524d\u3092\u4ed8\u3051\u3066\u4fdd\u5b58\u64cd\u4f5c\u3053\u3053\u307e\u3067 *****\r\n  \r\n  '***** \u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u5b8c\u4e86\u5f85\u3061\u3053\u3053\u304b\u3089 *****\r\n  If elmNotificationBar Is Nothing Then\r\n    '&#x5B;\u901a\u77e5\u30d0\u30fc]\u53d6\u5f97\r\n    Do\r\n      Set elmNotificationBar = _\r\n        GetElement(uiAuto, _\r\n                   elmIE, _\r\n                   UIA_AutomationIdPropertyId, _\r\n                   &quot;IENotificationBar&quot;, _\r\n                   UIA_ToolBarControlTypeId)\r\n      DoEvents\r\n    Loop While elmNotificationBar Is Nothing\r\n  End If\r\n  \r\n  '&#x5B;\u901a\u77e5\u30d0\u30fc\u306e\u30c6\u30ad\u30b9\u30c8]\u53d6\u5f97\r\n  Set elmNotificationText = _\r\n    GetElement(uiAuto, _\r\n               elmNotificationBar, _\r\n               UIA_NamePropertyId, _\r\n               &quot;\u901a\u77e5\u30d0\u30fc\u306e\u30c6\u30ad\u30b9\u30c8&quot;, _\r\n               UIA_TextControlTypeId)\r\n  If elmNotificationText Is Nothing Then GoTo Fin\r\n  \r\n  '&#x5B;\u9589\u3058\u308b]\u30dc\u30bf\u30f3\u53d6\u5f97\r\n  Set elmCloseButton = _\r\n    GetElement(uiAuto, _\r\n               elmNotificationBar, _\r\n               UIA_NamePropertyId, _\r\n               &quot;\u9589\u3058\u308b&quot;, _\r\n               UIA_ButtonControlTypeId)\r\n  If elmCloseButton Is Nothing Then GoTo Fin\r\n  \r\n  Do\r\n    DoEvents\r\n  Loop Until InStr( _\r\n    elmNotificationText.GetCurrentPropertyValue(UIA_ValueValuePropertyId), _\r\n    &quot;\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u304c\u5b8c\u4e86\u3057\u307e\u3057\u305f&quot;) &gt; 0\r\n  \r\n  '&#x5B;\u9589\u3058\u308b]\u30dc\u30bf\u30f3\u62bc\u4e0b\r\n  Set iptn = elmCloseButton.GetCurrentPattern(UIA_InvokePatternId)\r\n  iptn.Invoke\r\n  '***** \u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u5b8c\u4e86\u5f85\u3061\u3053\u3053\u307e\u3067 *****\r\n  \r\n  Exit Sub\r\nFin:\r\n  MsgBox &quot;\u51e6\u7406\u304c\u5931\u6557\u3057\u307e\u3057\u305f\u3002&quot;, vbCritical + vbSystemModal\r\nEnd Sub\r\n\r\nPrivate Function GetElement(ByVal uiAuto As CUIAutomation, _\r\n                            ByVal elmParent As IUIAutomationElement, _\r\n                            ByVal propertyId As Long, _\r\n                            ByVal propertyValue As Variant, _\r\n                            Optional ByVal ctrlType As Long = 0) As IUIAutomationElement\r\n  Dim cndFirst As IUIAutomationCondition\r\n  Dim cndSecond As IUIAutomationCondition\r\n  \r\n  Set cndFirst = uiAuto.CreatePropertyCondition( _\r\n                   propertyId, _\r\n                   propertyValue _\r\n                 )\r\n  If ctrlType &lt;&gt; 0 Then\r\n    Set cndSecond = uiAuto.CreatePropertyCondition( _\r\n                      UIA_ControlTypePropertyId, _\r\n                      ctrlType _\r\n                    )\r\n    Set cndFirst = uiAuto.CreateAndCondition( _\r\n                     cndFirst, _\r\n                     cndSecond _\r\n                   )\r\n  End If\r\n  Set GetElement = elmParent.FindFirst(TreeScope_Subtree, cndFirst)\r\nEnd Function<\/pre>\n<p>\u4e0a\u8a18\u30b3\u30fc\u30c9\u306f\u30eb\u30fc\u30d7\u3067\u6b62\u307e\u3063\u305f\u3068\u304d\u306e\u3053\u3068\u3082\u8003\u616e\u3057\u3066\u3044\u307e\u305b\u3093\u306e\u3067\u3001\u5b9f\u969b\u306b\u30b3\u30fc\u30c9\u3092\u52d5\u304b\u3059\u969b\u306b\u306f\u3001\u4e00\u5b9a\u6642\u9593\u30eb\u30fc\u30d7\u3067\u5f15\u3063\u639b\u304b\u3063\u305f\u3089\u51e6\u7406\u3092\u629c\u3051\u308b\u3001\u3068\u3044\u3046\u3088\u3046\u306a\u30b3\u30fc\u30c9\u3082\u8ffd\u52a0\u3057\u3066\u304a\u3044\u305f\u65b9\u304c\u826f\u3044\u3067\u3057\u3087\u3046\u3002<\/p>\n<p>\u4e00\u5fdc\u901a\u77e5\u30d0\u30fc\u3084\u30c0\u30a4\u30a2\u30ed\u30b0\u3082\u64cd\u4f5c\u3067\u304d\u308b\uff01\u3068\u3044\u3046\u3053\u3068\u3067\u3001\u3042\u304f\u307e\u3067\u3082\u6700\u7d42\u624b\u6bb5\u3068\u3057\u3066\u982d\u306e\u9685\u306b\u3067\u3082\u7f6e\u3044\u3066\u304a\u3044\u3066\u3044\u305f\u3060\u3051\u308c\u3070\u30fb\u30fb\u30fb\u3001\u3068\u3044\u3046\u3088\u3046\u306a\u30b3\u30fc\u30c9\u3067\u3059\u3002<\/p>\n<p>\u307e\u305f\u3001<a href=\"https:\/\/twitter.com\/kumatti1\" title=\"kumatti(@kumatti1)\u3055\u3093 | Twitter\" target=\"_blank\">kumatti\u3055\u3093<\/a>\u304b\u3089\u4e0b\u8a18\u60c5\u5831\u63d0\u4f9b\u304c\u3042\u308a\u307e\u3057\u305f\u306e\u3067\u300164\u30d3\u30c3\u30c8\u74b0\u5883\u3067\u30b3\u30fc\u30c9\u304c\u4e0a\u624b\u304f\u52d5\u4f5c\u3057\u306a\u3044\u5834\u5408\u306f\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\u3002<\/p>\n<blockquote class=\"twitter-tweet\" data-lang=\"ja\">\n<p lang=\"ja\" dir=\"ltr\"><a href=\"https:\/\/twitter.com\/kinuasa?ref_src=twsrc%5Etfw\">@kinuasa<\/a> \u3069\u3082\u3002\u305d\u3046\u8a00\u3048\u3070\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u7528\u306e\u30b3\u30fc\u30c9\u3092\u7e8f\u3081\u305f\u30da\u30fc\u30b8\u3067UI Automation\u306e\u30b5\u30f3\u30d7\u30eb\u306f<br \/>64Bit\u306eVBA\u3067\u78ba\u8a8d\u3057\u307e\u3057\u305f\u304c\u3001IsZoomed API\u3067\u5224\u5b9a\u3057\u3066ShowWindow\u3067IE\u6700\u5927\u5316\u3057\u306a\u3044\u3068<br \/>\u901a\u77e5\u30d0\u30fc\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u53d6\u5f97\u51fa\u6765\u307e\u305b\u3093\u3067\u3057\u305f\u3002<a href=\"https:\/\/twitter.com\/hashtag\/%E6%84%9F%E6%83%B3?src=hash&amp;ref_src=twsrc%5Etfw\">#\u611f\u60f3<\/a><\/p>\n<p>&mdash; kumatti\u30b6\u30a6\u30eb\u30b9 (@kumatti1) <a href=\"https:\/\/twitter.com\/kumatti1\/status\/515623280133537792?ref_src=twsrc%5Etfw\">2014\u5e749\u670826\u65e5<\/a><\/p><\/blockquote>\n<p><script async src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><\/p>\n<div id=\"single_banner_area2\" class=\"clearfix one_banner\">\n<div class=\"single_banner single_banner_left\">\n<script async src=\"https:\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js\"><\/script>\r\n<!-- \u8a18\u4e8b\u4e2d(\u30c7\u30a3\u30b9\u30d7\u30ec\u30a4\u5e83\u544a\u30e6\u30cb\u30c3\u30c8) -->\r\n<ins class=\"adsbygoogle\"\r\n     style=\"display:block\"\r\n     data-ad-client=\"ca-pub-7306936664602087\"\r\n     data-ad-slot=\"5429724765\"\r\n     data-ad-format=\"auto\"\r\n     data-full-width-responsive=\"true\"><\/ins>\r\n<script>\r\n     (adsbygoogle = window.adsbygoogle || []).push({});\r\n<\/script>\n<\/div>\n<div class=\"single_banner single_banner_right\">\n<a href=\"\" target=\"_blank\"><img decoding=\"async\" src=\"\" alt=\"\" title=\"\" \/><\/a>\n<\/div>\n<\/div>\n\n<p>\u3068\u3044\u3046\u308f\u3051\u3067\u3001\u4eca\u56de\u306fVBA\u3067\u30a4\u30f3\u30bf\u30fc\u30cd\u30c3\u30c8\u4e0a\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b\u8272\u3005\u306a\u65b9\u6cd5\u3092\u307e\u3068\u3081\u3066\u307f\u307e\u3057\u305f\u3002<\/p>\n<p>\u30d5\u30a1\u30a4\u30eb\u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u306b\u9650\u3089\u305aVBA\u304b\u3089Web\u30da\u30fc\u30b8\u3092\u64cd\u4f5c\u3059\u308b\u5834\u5408\u3001\u958b\u767a\u8005\u30c4\u30fc\u30eb\u3084Fiddler\u3092\u4f7f\u3063\u3066\u901a\u4fe1\u5185\u5bb9\u3092\u78ba\u8a8d\u3059\u308b\u3001Web\u30da\u30fc\u30b8\u306e\u30bd\u30fc\u30b9\u3092\u78ba\u8a8d\u3059\u308b\u3001\u3068\u3044\u3063\u305f\u3053\u3068\u306f\u57fa\u672c\u4e2d\u306e\u57fa\u672c\u3068\u3082\u8a00\u3048\u3001\u3069\u3046\u3057\u3066\u3082\u5fc5\u8981\u306b\u306a\u3063\u3066\u304d\u307e\u3059\u3002<\/p>\n<p>\u30d5\u30a1\u30a4\u30eb\u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u51e6\u7406\u3067\u8e93\u3044\u305f\u3068\u304d\u306f\u3001<span style=\"color: #ff0000; font-weight: bold;\">\u307e\u305a\u306f\u5bfe\u8c61\u3068\u306a\u308b\u30b5\u30a4\u30c8\u3092\u3088\u304f\u898b\u3066\u307f\u308b<\/span>\u3053\u3068\u3092\u304a\u85a6\u3081\u3057\u307e\u3059\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"\u300cVBA \u30d5\u30a1\u30a4\u30eb \u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u300d\u3068\u3044\u3063\u305f\u30ad\u30fc\u30ef\u30fc\u30c9\u691c\u7d22\u3067\u306e\u30a2\u30af\u30bb\u30b9\u304c\u3042\u308a\u307e\u3057\u305f\u3002 Office\u7cfb\u306eQ&amp;A\u30b5\u30a4\u30c8\u3092\u898b\u3066\u3082\u300cVBA\u3067\u30a4\u30f3\u30bf\u30fc\u30cd\u30c3\u30c8\u4e0a\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u305f\u3044\u300d\u3068\u3044\u3046\u8981\u671b\u306f\u591a\u3044\u3088\u3046\u306a\u306e\u3067\u3001\u8272\u3005\u306a [&hellip;]","protected":false},"author":1,"featured_media":7120,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"VBA\u3067\u306e\u30d5\u30a1\u30a4\u30eb\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u65b9\u6cd5\u307e\u3068\u3081\u3067\u3059\u3002Special thanks, @yu_tang_ \u3055\u3093\u3001 @kumatti1 \u3055\u3093\u3002 [VBA\u3067\u30a4\u30f3\u30bf\u30fc\u30cd\u30c3\u30c8\u4e0a\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b\u65b9\u6cd5\u3092\u307e\u3068\u3081\u3066\u307f\u307e\u3057\u305f\u3002]","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[48,4,49,58],"tags":[],"class_list":["post-4855","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-excel-office","category-office","category-word-office","category-powerpoint"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/eyecatch-OfficeVBA.png","jetpack_shortlink":"https:\/\/wp.me\/p4UZZr-1gj","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.ka-net.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/4855","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ka-net.org\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ka-net.org\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ka-net.org\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ka-net.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4855"}],"version-history":[{"count":19,"href":"https:\/\/www.ka-net.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/4855\/revisions"}],"predecessor-version":[{"id":11285,"href":"https:\/\/www.ka-net.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/4855\/revisions\/11285"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ka-net.org\/blog\/index.php?rest_route=\/wp\/v2\/media\/7120"}],"wp:attachment":[{"href":"https:\/\/www.ka-net.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4855"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ka-net.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4855"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ka-net.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4855"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}