{"id":644,"date":"2018-08-28T00:13:26","date_gmt":"2018-08-27T15:13:26","guid":{"rendered":"https:\/\/blog.tkouen.mydns.jp\/wordpress\/?p=644"},"modified":"2018-08-30T10:13:51","modified_gmt":"2018-08-30T01:13:51","slug":"%e5%ae%9f%e9%a8%93%e3%82%a8%e3%82%af%e3%82%bb%e3%83%ab%e3%81%ae%e3%82%b7%e3%83%95%e3%83%88%e8%a1%a8%e3%82%92google%e3%82%ab%e3%83%ac%e3%83%b3%e3%83%80%e3%83%bc%e3%81%ab%e5%8f%8d%e6%98%a0%e3%81%97-3","status":"publish","type":"post","link":"https:\/\/devlog.nb3.jp\/wordpress\/644","title":{"rendered":"[\u5b9f\u9a13]\u30a8\u30af\u30bb\u30eb\u306e\u30b7\u30d5\u30c8\u8868\u3092Google\u30ab\u30ec\u30f3\u30c0\u30fc\u306b\u53cd\u6620[\u3057\u3066\u307f\u308b]\u305d\u306e3"},"content":{"rendered":"<p><a href=\"https:\/\/blog.tkouen.mydns.jp\/wordpress\/wp-content\/uploads\/2018\/07\/a11b4bb3ba448d1fa402ac3dc62cc91f.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-602\" src=\"https:\/\/blog.tkouen.mydns.jp\/wordpress\/wp-content\/uploads\/2018\/07\/a11b4bb3ba448d1fa402ac3dc62cc91f.png\" alt=\"\" width=\"165\" height=\"165\" srcset=\"https:\/\/devlog.nb3.jp\/wordpress\/wp-content\/uploads\/2018\/07\/a11b4bb3ba448d1fa402ac3dc62cc91f.png 165w, https:\/\/devlog.nb3.jp\/wordpress\/wp-content\/uploads\/2018\/07\/a11b4bb3ba448d1fa402ac3dc62cc91f-150x150.png 150w\" sizes=\"auto, (max-width: 165px) 100vw, 165px\" \/><\/a>\u4e45\u65b9\u3076\u308a\u3067\u3059\u3002<br \/>\n\u53d6\u308a\u5408\u3048\u305a\u3001\u30a8\u30af\u30bb\u30eb\u306evisual basic\u306e\u30b3\u30fc\u30c9\u3092\u30fb\u30fb<br \/>\n\u304b\u306a\u308a\u9069\u5f53\u306b\u66f8\u3044\u3066\u307e\u3059\u3002<br \/>\n\u30b7\u30fc\u30c81\u679a\u76ee\u3092\u30de\u30b9\u30bf\u3068\u3057\u3066\u30012\u30b7\u30fc\u30c8\u76ee\u4ee5\u964d\u3092\u30b7\u30d5\u30c8\u8868\u3068\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<div style=\"clear: both;\"><\/div>\n<p><!--more--><br \/>\n\u30de\u30b9\u30bf\u30b7\u30fc\u30c8\u306eA\u30fbB\u5217<a href=\"\/wordpress\/wp-content\/uploads\/2018\/08\/b11a7eb11cd76b20fe8726ecbd3d3b55.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-medium wp-image-647\" src=\"\/wordpress\/wp-content\/uploads\/2018\/08\/b11a7eb11cd76b20fe8726ecbd3d3b55-300x116.png\" alt=\"\" width=\"300\" height=\"116\" srcset=\"https:\/\/devlog.nb3.jp\/wordpress\/wp-content\/uploads\/2018\/08\/b11a7eb11cd76b20fe8726ecbd3d3b55-300x116.png 300w, https:\/\/devlog.nb3.jp\/wordpress\/wp-content\/uploads\/2018\/08\/b11a7eb11cd76b20fe8726ecbd3d3b55-768x297.png 768w, https:\/\/devlog.nb3.jp\/wordpress\/wp-content\/uploads\/2018\/08\/b11a7eb11cd76b20fe8726ecbd3d3b55-500x193.png 500w, https:\/\/devlog.nb3.jp\/wordpress\/wp-content\/uploads\/2018\/08\/b11a7eb11cd76b20fe8726ecbd3d3b55.png 913w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a>\u3092\u6642\u7d66\u3001D\u30fbE\u5217\u3092\u795d\u65e5\u3001E\u30fbF\u5217\u3092Google\u30ab\u30ec\u30f3\u30c0\u30fc\u3068\u306e\u9023\u643a\u9805\u76ee<br \/>\n\u203bF1\u3067Google\u30ab\u30ec\u30f3\u30c0\u30fc\u3092\u4f7f\u7528\u3059\u308b\u304b\u3069\u3046\u304b\u3092\u8a2d\u5b9a\u3057\u307e\u3059\u3002\u300c1\u300d\u3092\u8a2d\u5b9a\u3059\u308b\u3068\u4f7f\u7528\u3059\u308b\u611f\u3058\u3067\u3059\u3002<\/p>\n<div style=\"clear: both;\"><\/div>\n<p><a href=\"\/wordpress\/wp-content\/uploads\/2018\/08\/19c2de8dc8f0a53cf5e3ba0a1fc7ffa8.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-medium wp-image-648\" src=\"\/wordpress\/wp-content\/uploads\/2018\/08\/19c2de8dc8f0a53cf5e3ba0a1fc7ffa8-300x148.png\" alt=\"\" width=\"300\" height=\"148\" srcset=\"https:\/\/devlog.nb3.jp\/wordpress\/wp-content\/uploads\/2018\/08\/19c2de8dc8f0a53cf5e3ba0a1fc7ffa8-300x148.png 300w, https:\/\/devlog.nb3.jp\/wordpress\/wp-content\/uploads\/2018\/08\/19c2de8dc8f0a53cf5e3ba0a1fc7ffa8-768x378.png 768w, https:\/\/devlog.nb3.jp\/wordpress\/wp-content\/uploads\/2018\/08\/19c2de8dc8f0a53cf5e3ba0a1fc7ffa8-1024x505.png 1024w, https:\/\/devlog.nb3.jp\/wordpress\/wp-content\/uploads\/2018\/08\/19c2de8dc8f0a53cf5e3ba0a1fc7ffa8-500x246.png 500w, https:\/\/devlog.nb3.jp\/wordpress\/wp-content\/uploads\/2018\/08\/19c2de8dc8f0a53cf5e3ba0a1fc7ffa8.png 1254w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><br \/>\n\u30b7\u30d5\u30c8\u8868\u3067\u306f5\u884c\u76ee\u304b\u3089\u958b\u59cb\u65e5\u3068\u306a\u308a\u305d\u306e\u5bfe\u8c61\u4ed8\u304d\u5206\u5217\u304c\u51fa\u6765\u4e0a\u304c\u3042\u308a\u307e\u3059\u3002<br \/>\nD\u5217\uff1a\u65e5\u7d66<br \/>\nE\u5217\uff1a\u305d\u306e\u65e5\u306e\u7a3c\u50cd\u6642\u9593<br \/>\nFGHIJK\u5217\u306f\u305d\u308c\u305e\u308c\u306e\u65e9\u671d\u30fb\u901a\u5e38\u30fb\u6df1\u591c\u306e\u91d1\u984d\u3068\u7a3c\u50cd\u3068\u306a\u308a\u307e\u3059\u3002<br \/>\n\u307e\u305f\u300138\u884c\u76ee\u304c\u3001\u6708\u306e\u5408\u8a08\u3092\u8868\u793a\u3057\u307e\u3059\u3002<br \/>\nM\u5217\u304b\u3089\u306f\u6642\u9593\u309215\u5206\u523b\u307f\u3067\u30bb\u30eb\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002\u7a3c\u50cd\u3057\u3066\u3044\u308b\u6642\u9593\u306b\u306f\u300c1\u300d\u3092\u8a2d\u5b9a\u3057\u307e\u3059\u3002<br \/>\n\u203b\u30b7\u30fc\u30c8\u5185\u306e\u898b\u305f\u76ee\u306f\u306a\u3093\u304b\u3044\u308d\u3044\u308d\u3084\u3063\u3066\u3044\u308b\u306e\u3067\u7701\u304d\u307e\u3059\u3002<\/p>\n<div style=\"clear: both;\"><\/div>\n<p>\u4ee5\u4e0b\u3001\u30a8\u30af\u30bb\u30eb\u306b\u8a18\u8ff0\u3057\u305f\u30b3\u30fc\u30c9\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<pre class=\"brush: javascript; gutter: true\">Public Function insCallendar(ByVal query As String)\r\n    Dim objXMLHttp As Object\r\n    Set objXMLHttp = CreateObject(&quot;MSXML2.XMLHTTP&quot;)\r\n    objXMLHttp.Open &quot;POST&quot;, &quot;https:\/\/\u30c9\u30e1\u30a4\u30f3\/hoge.php&quot;, False\r\n    objXMLHttp.setRequestHeader &quot;Content-Type&quot;, &quot;application\/x-www-form-urlencoded&quot;\r\n    \r\n    Dim postData As String\r\n    postData = query\r\n    objXMLHttp.Send (postData)\r\nEnd Function<\/pre>\n<pre class=\"brush: javascript; gutter: true\">Option Explicit\r\nConst c_row = 5\r\nConst c_col = 13\r\nConst c_days = 30\r\nConst c_times = (25 - 6) * 4\r\n\r\nPrivate Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)\r\n    Dim gc_flg As String\r\n    gc_flg = Worksheets(1).Cells(1, 7).Value\r\n    If (gc_flg = &quot;1&quot;) Then\r\n        Dim calendar_id As String\r\n        Dim calendar_title As String\r\n        calendar_id = Worksheets(1).Cells(2, 7).Value\r\n        calendar_title = Worksheets(1).Cells(3, 7).Value\r\n        Dim i, n, yms As Long\r\n        Dim re As New RegExp\r\n        re.Global = True\r\n        re.Pattern = &quot;^(\\d+)$&quot;\r\n        n = 0\r\n        Dim sheets As Object\r\n        Set sheets = CreateObject(&quot;Scripting.Dictionary&quot;)\r\n        For i = 1 To Worksheets.Count\r\n            If (Worksheets(i).Name = &quot;\u30de\u30b9\u30bf&quot;) Then\r\n            Else\r\n                If (re.test(Worksheets(i).Name)) Then\r\n                    If (Worksheets(i).Name &gt;= Format(DateSerial(Year(Date), Month(Date) - 1, 1), &quot;yyyymm&quot;)) Then\r\n                        Dim s As String\r\n                        s = Worksheets(i).Name\r\n                        sheets.Add n, s\r\n                        n = n + 1\r\n                    Else\r\n                    End If\r\n                End If\r\n            End If\r\n        Next\r\n        Dim row As Long\r\n        Dim col As Long\r\n        Dim obj_time As Object\r\n        Dim day As String\r\n        Dim remark As String\r\n        Dim tmp_f As String\r\n        Dim tmp_t As String\r\n        Dim flg As Boolean\r\n        Dim end_flg As Boolean\r\n        Dim query As String\r\n        Dim min_d, max_d As String\r\n        min_d = &quot;&quot;\r\n        max_d = &quot;&quot;\r\n        query = &quot;calendar_id=&quot; &amp; calendar_id\r\n        query = query &amp; &quot;&amp;calendar_title=&quot; &amp; calendar_title\r\n        Dim ym As String\r\n        ym = Format(Date, &quot;yyyymm&quot;)\r\n        Dim test As Object\r\n        For yms = 0 To sheets.Count\r\n            If (sheets(yms) &lt;&gt; &quot;&quot;) Then\r\n                For row = c_row To (c_row + c_days)\r\n                    day = Worksheets(sheets(yms)).Cells(row, 1).Value\r\n                    If (day &lt;&gt; &quot;&quot;) Then\r\n                        If (day &lt; min_d Or min_d = &quot;&quot;) Then min_d = day &#039; \u5bfe\u8c61\u306e\u30b7\u30fc\u30c8\u3067\u4e00\u756a\u53e4\u3044\u65e5\u4ed8\u3092\u53d6\u5f97 End If If (day &gt; max_d) Then\r\n                            max_d = day &#039; \u5bfe\u8c61\u306e\u30b7\u30fc\u30c8\u3067\u4e00\u756a\u65b0\u3057\u3044\u65e5\u4ed8\u3092\u53d6\u5f97\r\n                        End If\r\n                        remark = Worksheets(sheets(yms)).Cells(row, 3).Value\r\n                        tmp_f = &quot;&quot;\r\n                        tmp_t = &quot;&quot;\r\n                        flg = False\r\n                        end_flg = False\r\n                        For col = c_col To (c_col + c_times - 1)\r\n                            Dim tmp_h As Integer\r\n                            tmp_h = ((col - c_col) \\ 4) \r\n                            If (tmp_f = &quot;&quot; And flg = False And Worksheets(sheets(yms)).Cells(row, col).Value = 1) Then\r\n                                If (((col - c_col) Mod 4) = 0) Then\r\n                                    tmp_f = (tmp_h + 6) &amp; &quot;:00&quot;\r\n                                Else\r\n                                    tmp_f = (tmp_h + 6) &amp; &quot;:&quot; &amp; ((col - c_col) Mod 4) * 15\r\n                                End If\r\n                                flg = True\r\n                            ElseIf (tmp_f &lt;&gt; &quot;&quot; And flg = True And Worksheets(sheets(yms)).Cells(row, col).Value = 1) Then\r\n                                If ((((col - c_col) Mod 4) * 15 + 15) = 60) Then\r\n                                    tmp_t = (tmp_h + 6 + 1) &amp; &quot;:00&quot;\r\n                                Else\r\n                                    tmp_t = (tmp_h + 6) &amp; &quot;:&quot; &amp; (((col - c_col) Mod 4) * 15 + 15)\r\n                                End If\r\n                                flg = True\r\n                            ElseIf (flg = True &amp; Worksheets(sheets(yms)).Cells(row, col).Value = &quot;&quot;) Then\r\n                                end_flg = True\r\n                            Else\r\n                            End If\r\n                        Next col\r\n                        If (tmp_f &lt;&gt; &quot;&quot; And tmp_t &lt;&gt; &quot;&quot;) Then\r\n                            If (query &lt;&gt; &quot;&quot;) Then\r\n                                query = query &amp; &quot;&amp;&quot;\r\n                            Else\r\n                            End If\r\n                            query = query &amp; _\r\n                                &quot;day[&quot; &amp; day &amp; &quot;]=&quot; &amp; day &amp; _\r\n                                &quot;&amp;day[&quot; &amp; day &amp; &quot;][remark]=&quot; &amp; remark &amp; _\r\n                                &quot;&amp;day[&quot; &amp; day &amp; &quot;][f]=&quot; &amp; tmp_f &amp; _\r\n                                &quot;&amp;day[&quot; &amp; day &amp; &quot;][t]=&quot; &amp; tmp_t\r\n                        End If\r\n                    End If\r\n                Next row\r\n            End If\r\n        Next yms\r\n        If (query &lt;&gt; &quot;&quot;) Then\r\n            query = query &amp; &quot;&amp;min_d=&quot; &amp; min_d &amp; &quot;&amp;max_d=&quot; &amp; max_d\r\n        Else\r\n        End If\r\n        insCallendar (query)\r\n    End If\r\nEnd Sub\r\n<\/pre>\n<p>\u6b21\u56de\u306f\u3001php\u5074\u3092\u30fb\u30fb\u30fb\u30fb<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4e45\u65b9\u3076\u308a\u3067\u3059\u3002 \u53d6\u308a\u5408\u3048\u305a\u3001\u30a8\u30af\u30bb\u30eb\u306evisual basic\u306e\u30b3\u30fc\u30c9\u3092\u30fb\u30fb \u304b\u306a\u308a\u9069\u5f53\u306b\u66f8\u3044\u3066\u307e\u3059\u3002 \u30b7\u30fc\u30c81\u679a\u76ee\u3092\u30de\u30b9\u30bf\u3068\u3057\u3066\u30012\u30b7\u30fc\u30c8\u76ee\u4ee5\u964d\u3092\u30b7\u30d5\u30c8\u8868\u3068\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n","protected":false},"author":1,"featured_media":602,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9],"tags":[130,147,145],"class_list":["post-644","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-program","tag-google","tag-147","tag-145"],"_links":{"self":[{"href":"https:\/\/devlog.nb3.jp\/wordpress\/wp-json\/wp\/v2\/posts\/644","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devlog.nb3.jp\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devlog.nb3.jp\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devlog.nb3.jp\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/devlog.nb3.jp\/wordpress\/wp-json\/wp\/v2\/comments?post=644"}],"version-history":[{"count":10,"href":"https:\/\/devlog.nb3.jp\/wordpress\/wp-json\/wp\/v2\/posts\/644\/revisions"}],"predecessor-version":[{"id":656,"href":"https:\/\/devlog.nb3.jp\/wordpress\/wp-json\/wp\/v2\/posts\/644\/revisions\/656"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devlog.nb3.jp\/wordpress\/wp-json\/wp\/v2\/media\/602"}],"wp:attachment":[{"href":"https:\/\/devlog.nb3.jp\/wordpress\/wp-json\/wp\/v2\/media?parent=644"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devlog.nb3.jp\/wordpress\/wp-json\/wp\/v2\/categories?post=644"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devlog.nb3.jp\/wordpress\/wp-json\/wp\/v2\/tags?post=644"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}