<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
  <title>三流君 ken3のmemo置き場</title>
  
  <subtitle>三流プログラマーのメモ書きです。主にVBAやWindowsの話題が多いです</subtitle>
  
  <link href="https://ken3memo.hatenablog.com/"/>
  <updated>2026-06-09T07:30:00+09:00</updated>
  <author>
    <name>ken3memo</name>
  </author>
  <generator uri="https://blog.hatena.ne.jp/" version="ce5b913fa8358d4b543908c3d6d3ff">Hatena::Blog</generator>
  <id>hatenablog://blog/12704346814673856727</id>

  
    
    
    <entry>
        <title>過去動画から【2018年版】システム屋がハマる「座席割付アルゴリズム」の盲点と、修正に強いVBA定数の書き方</title>
        <link href="https://ken3memo.hatenablog.com/entry/2026/06/09/073000"/>
        <id>hatenablog://entry/14945776032040317071</id>
        <published>2026-06-09T07:30:00+09:00</published>
        <updated>2026-06-09T07:30:00+09:00</updated>        <summary type="html">過去動画の字幕作成中におっこれは？面白そう？と手前味噌の動画を見つけたので AIで見どころを作成して、紹介します。 視聴者・読者の心の声:「自分大好きですね、そんなに面白くなかった、ささらなかった」「今、そんなシステムないし、設計ミスでしょ・・・」 ・ ・ 【VBA設計】仕様書通りに作るとカップルが別れる？座席割付ロジックの罠と定数の作法 「仕様書に書かれた条件通り、完璧にプログラムを組んだはずなのに、なぜか現場のユーザーから大クレームをもらってしまった…」そんな理不尽な経験はありませんか？ 実は、システム開発のロジック設計には、仕様書の文字面だけを追っていると絶対に見抜けない&#39;&#39;「人間の心理…</summary>
        <content type="html">&lt;p&gt;過去動画の字幕作成中に&lt;strong&gt;おっこれは？面白そう？&lt;/strong&gt;と&lt;span style=&quot;color: #ff0000&quot;&gt;手前味噌の動画&lt;/span&gt;を見つけたので&lt;br /&gt;
AIで見どころを作成して、紹介します。&lt;br /&gt;
視聴者・読者の心の声:「自分大好きですね、そんなに面白くなかった、ささらなかった」「今、そんなシステムないし、設計ミスでしょ・・・」&lt;br /&gt;
・&lt;br /&gt;
・&lt;/p&gt;

&lt;div class=&quot;section&quot;&gt;
    &lt;h3 id=&quot;VBA設計仕様書通りに作るとカップルが別れる座席割付ロジックの罠と定数の作法&quot;&gt;【VBA設計】仕様書通りに作るとカップルが別れる？座席割付ロジックの罠と定数の作法&lt;/h3&gt;
    &lt;p&gt;「仕様書に書かれた条件通り、完璧にプログラムを組んだはずなのに、なぜか現場のユーザーから大クレームをもらってしまった…」&lt;/p&gt;&lt;p&gt;そんな理不尽な経験はありませんか？&lt;br /&gt;
実は、システム開発のロジック設計には、仕様書の文字面だけを追っていると絶対に見抜けない&#39;&#39;&lt;b&gt;「人間の心理や行動パターン」という巨大な落とし穴&lt;/b&gt;&#39;&#39;が潜んでいます。&lt;/p&gt;&lt;p&gt;今回は、遊園地のジェットコースターや新幹線の座席割付を例に、システム屋がハマりがちな盲点を優しく解説します。さらに、後からの急な仕様変更や座席数の変更にもバタバタせず、一瞬で修正対応できる綺麗なコードを書くための&#39;&#39;&lt;b&gt;「Excel VBAにおける定数（Const）の作法」&lt;/b&gt;&#39;&#39;についても、当時のライブ配信でのデバッグ実演を交えて備忘録としてまとめました。&lt;/p&gt;
&lt;figure class=&quot;figure-image figure-image-fotolife&quot; title=&quot;ポイントをAIさんにまとめてもらいました(おいおい・・・)&quot;&gt;&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260609/20260609005741.png&quot; width=&quot;1200&quot; height=&quot;670&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;figcaption&gt;ポイントをAIさんにまとめてもらいました(おいおい・・・)&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;読者の皆さんの実務や設計思想に必ず役立つヒントが詰まっていますので、ぜひ最後までお付き合いください！&lt;/p&gt;&lt;p&gt;&lt;hr&gt;&lt;br /&gt;
&lt;/p&gt;

&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;仕様書の文字面と実運用のギャップを紐解く動画の重要ハイライト&quot;&gt;仕様書の文字面と実運用のギャップを紐解く！動画の重要ハイライト&lt;/h4&gt;
    &lt;p&gt;動画内で解説・実演した手順と、システム屋として絶対に押さえておくべきポイントを、該当の動画シーンへの直通リンク付きで詳しく解説します。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&#39;&#39;ポイント1：無料で情報を公開すると「人が集まり、情報も集まる」最高の循環&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;[00:00](&lt;a href=&quot;https://www.youtube.com/watch?v=lq3uBqJYiCU&amp;t=0s&quot;&gt;https://www.youtube.com/watch?v=lq3uBqJYiCU&amp;t=0s&lt;/a&gt;)&lt;br /&gt;
まずはライブ配信開始のご挨拶から。無料でマクロのロジックや情報を公開していると、視聴者の皆さんから「ここはこう書いた方が良いのでは？」「仕様書とここがズレてますよ」といった、非常にありがたく温かいアドバイスや指摘（情報）がどんどん集まってきます。人が集まれば情報も集まる。今後もこの素晴らしい循環を大切にしていきたいという、私の開発者としての原点をお話ししています。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&#39;&#39;ポイント2：VBA定数（Const）の作法：なぜ固定値は「コードの頭」に書くべきなのか？&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;[01:23](&lt;a href=&quot;https://www.youtube.com/watch?v=lq3uBqJYiCU&amp;t=83s&quot;&gt;https://www.youtube.com/watch?v=lq3uBqJYiCU&amp;t=83s&lt;/a&gt;)&lt;br /&gt;
視聴者様からいただいた1つ目のアドバイスがこれです。プログラムの中で使う最大の座席数や、読み込み・書き出しを行うセルの基準位置のような「固定値」を、コードの途中にバラバラと直接書き込んでしまう（ハードコーディングする）のは絶対に避けるべきです。&lt;br /&gt;
例えば、動画内で登場する以下のような初期設定のコード断片を見てみましょう。&lt;/p&gt;
&lt;pre class=&quot;code lang-vb&quot; data-lang=&quot;vb&quot; data-unlink&gt;&lt;span class=&quot;synComment&quot;&gt;&#39; 動画内で使用された初期定義のイメージ&lt;/span&gt;
Gorup_Max &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;33&lt;/span&gt;
人数基準 &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;A1&amp;quot;&lt;/span&gt;
結果基準 &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;C1&amp;quot;&lt;/span&gt;
&lt;/pre&gt;&lt;p&gt;このように途中で定義するのではなく、コードの最上部に「定数（Const）」としてまとめて宣言しておくのがプロの作法です。これをごもっともなご意見として受け入れ、なぜそうすべきなのかを解説しています。頭にまとめておけば、後から「基準位置が変わった」「最大座席数が33から20になった」という仕様変更が来ても、先頭の数行を書き換えるだけで対応が完了します。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&#39;&#39;ポイント3：定数定義のエラーと、仕様書との出力結果のズレをライブデバッグ！&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;[04:20](&lt;a href=&quot;https://www.youtube.com/watch?v=lq3uBqJYiCU&amp;t=260s&quot;&gt;https://www.youtube.com/watch?v=lq3uBqJYiCU&amp;t=260s&lt;/a&gt;)&lt;br /&gt;
視聴者様からの2つ目の指摘「出力結果の表示が、いただいた仕様書のデザインと違っている（縦並びと横並びがズレている）」という問題に直面し、その場で修正を試みるライブデバッグシーンです。&lt;br /&gt;
定数（Const）として定義した変数に対して、コードの途中で誤って値を代入しようとして「定数には値を代入できません」という当たり前のエラーを出してしまったり、出力先の位置を調整する「Offset」の指定ミスで頭を抱えたりする、泥縄式ながらも実践的な解決プロセスを丸ごと実演しています。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&#39;&#39;ポイント4：漢字の変数名が招く「ダブルクォーテーション」の紛らわしいエラー&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;[11:00](&lt;a href=&quot;https://www.youtube.com/watch?v=lq3uBqJYiCU&amp;t=660s&quot;&gt;https://www.youtube.com/watch?v=lq3uBqJYiCU&amp;t=660s&lt;/a&gt;)&lt;br /&gt;
RangeやOffsetの範囲指定を行う際、ダブルクォーテーションで囲うべき文字列（セルのアドレス等）と、囲ってはいけない変数名がごっちゃになり、「名前の定義がない」というエラーが発生する原因を紐解きます。&lt;br /&gt;
原因は、変数名に「人数」や「結果基準」といった「漢字の変数名」をそのまま使ってしまったことにあります。日本語の変数名は一見わかりやすい反面、ワークシート関数の名前定義などと混同しやすく、コードを記述する際に非常に紛らわしい事態を引き起こすため注意が必要です。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&#39;&#39;ポイント5：【本動画の核心】仕様通りに作るとカップルが別れる？ジェットコースター座席割付問題&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;[15:20](&lt;a href=&quot;https://www.youtube.com/watch?v=lq3uBqJYiCU&amp;t=920s&quot;&gt;https://www.youtube.com/watch?v=lq3uBqJYiCU&amp;t=920s&lt;/a&gt;)&lt;br /&gt;
長年応援してくださっている視聴者様からいただいた、最高に面白い雑談ネタであり、本動画で最もお伝えしたい設計思想の核心です。&lt;br /&gt;
12人乗りのジェットコースター（2列シート）の割付システムを「仕様書通り」に機械的に作成したとします。そこに「6人グループ」「5人グループ」「2人組（カップル）」が順番に乗車してきた場合、システムは空き席を埋めるために、最後のカップルを「1台目の最後の1席」と「2台目の最初の1席」に別々に割り当ててしまいます。&lt;br /&gt;
「プログラムは1ミリもバグっていないし、仕様書通りに動いている。だけど、実際の運用でこれをやったらカップルに大激怒されるよね」という、現実世界のユーザーの感情や心理を考慮することの重要性を、笑い話を交えて考察しています。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&#39;&#39;ポイント6：新幹線の3列・2列シートへの応用と、専用システムの難しさ&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;[19:00](&lt;a href=&quot;https://www.youtube.com/watch?v=lq3uBqJYiCU&amp;t=1140s&quot;&gt;https://www.youtube.com/watch?v=lq3uBqJYiCU&amp;t=1140s&lt;/a&gt;)&lt;br /&gt;
ジェットコースターの例からさらに発展させ、新幹線の「通路を挟んだ2列＋3列シート」において、4人指定や2人指定が来た際に実際の座席予約システムがどのように塊（グループ）を意識して席を確保しているかというロジックの応用に触れます。&lt;br /&gt;
ただ機械的に空いている席を詰めるだけではなく、「隣同士にできるか？」「前後の席でまとめられるか？」といった、人間の快適性を考慮したシステムを組むことがどれほど複雑で難しいか、システム屋としての視点で深く掘り下げています。&lt;/p&gt;&lt;p&gt;&lt;hr&gt;&lt;br /&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;未解決の問題点と現在最新の視点からのアドバイス&quot;&gt;未解決の問題点と現在・最新の視点からのアドバイス&lt;/h4&gt;
    &lt;p&gt;動画を撮影した当時から時代が進んだ現在（2026年）の視点を取り入れ、このテーマが現代の開発において持つ意味と、今後の課題についてAIの視点から大胆に提言します。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&#39;&#39;&lt;b&gt;AI生成コード時代だからこそハマる「文字通りしか作れない」罠&lt;/b&gt;&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;現代はChatGPTやCursorなどの生成AIに指示を出せば、一瞬でVBAコードが書ける時代です。しかし、AIは人間が与えた「仕様書のプロンプト」の文字通りにしかコードを生成できません。今回の座席割付のように、「カップルを別々に座らせたらユーザーが不満を持つ」という&#39;&#39;&lt;b&gt;仕様書に書かれていない暗黙の了解やUI/UXの配慮&lt;/b&gt;&#39;&#39;は、AIには予測不可能なのです。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&#39;&#39;&lt;b&gt;システム屋の価値は「正しく動かすこと」から「人を幸せにすること」へシフトする&lt;/b&gt;&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;ただ動くコードを書くだけの作業はAIに置き換わっていきます。だからこそ、私たち人間のエンジニアは、動画の後半で私が必死に新幹線の席を例にして考え込んでいたような、「どうすれば使う人が心地よくシステムを使えるか？」という人間中心の設計思想（UX設計）に時間と脳のメモリを使うべきです。&lt;/p&gt;

    &lt;blockquote&gt;
        &lt;p&gt;&#39;&#39;&lt;b&gt;AIからのアドバイス：仕様変更を恐れない「定数化」と「心理予測」のセット運用&lt;/b&gt;&#39;&#39;&lt;br /&gt;
実務のシステム開発において、要件定義の段階でユーザーの心理を100%予見するのは不可能です。必ず後から「やっぱり隣同士にして」「この席は空けて」という変更が現場から降ってきます。&lt;br /&gt;
だからこそ、ポイント2で学んだ&#39;&#39;&lt;b&gt;「徹底的な定数（Const）の先頭管理」&lt;/b&gt;&#39;&#39;が最強の防御盾になります。ロジックの修正が必要になった際、プログラムのあちこちを書き換えるのではなく、設定を一箇所に集約しておくことで、仕様の落とし穴にハマった後でも「泥縄式に、だけど爆速で」システムをアップデートしていく柔軟な設計を心がけましょう！&lt;/p&gt;

    &lt;/blockquote&gt;
&lt;p&gt;&lt;hr&gt;&lt;br /&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;関連リンク&quot;&gt;関連リンク&lt;/h4&gt;
    
&lt;div class=&quot;section&quot;&gt;
    &lt;h5 id=&quot;公式情報検索リンク&quot;&gt;公式情報・検索リンク&lt;/h5&gt;
    
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.google.com/search?q=Excel+VBA+Const+%E6%9B%B8%E3%81%8D%E6%96%B9+%E4%BD%9C%E6%B3%95&quot;&gt;Google&amp;#x691C;&amp;#x7D22;&amp;#xFF1A;Excel VBA Const &amp;#x66F8;&amp;#x304D;&amp;#x65B9; &amp;#x4F5C;&amp;#x6CD5;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/results?search_query=Excel+VBA+%E5%BA%A7%E5%B8%AD%E5%89%B2%E4%BB%98+%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0&quot;&gt;YouTube&amp;#x52D5;&amp;#x753B;&amp;#xFF1A;Excel VBA &amp;#x5EA7;&amp;#x5E2D;&amp;#x5272;&amp;#x4ED8; &amp;#x30A2;&amp;#x30EB;&amp;#x30B4;&amp;#x30EA;&amp;#x30BA;&amp;#x30E0;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;hr&gt;&lt;br /&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;おわりの挨拶コメント待ってます&quot;&gt;おわりの挨拶、コメント待ってます&lt;/h4&gt;
    &lt;p&gt;仕様書に1ミリも違反していないのに、実際の運用に持っていった瞬間に「これじゃ使えない！」と怒られるシステム屋の悲哀や、定数の書き方について、何か共感できるポイントはありましたでしょうか？&lt;/p&gt;&lt;p&gt;「自分も同じように空き席を詰めるロジックで現場から大クレームをもらったことがある！」という断末魔の失敗談から、「定数をコードの途中に書いて大バグを起こした経験があるから、先頭まとめの作法は本当に命綱だと分かった」という技術的な共感、また「新幹線の座席予約ロジックを実際に再現しようとしたら、こんな条件分岐で頭が爆発した」という実装の質問まで、どんなことでもお気軽にコメント欄へ書き込んでください！&lt;/p&gt;&lt;p&gt;皆さんのリアルな「ハマりポイント」や「現場の声」が、同じように画面の前で悩む三流プログラマー（そして私自身！）の何よりの教科書になります。&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=lq3uBqJYiCU&quot;&gt;&amp;#x3010;&amp;#x52D5;&amp;#x753B;&amp;#x672C;&amp;#x7DE8;&amp;#x3011;VBA&amp;#x5B9A;&amp;#x6570;&amp;#x306E;&amp;#x4F5C;&amp;#x6CD5;&amp;#x3068;&amp;#x5EA7;&amp;#x5E2D;&amp;#x5272;&amp;#x4ED8;&amp;#x30ED;&amp;#x30B8;&amp;#x30C3;&amp;#x30AF;&amp;#x306E;&amp;#x843D;&amp;#x3068;&amp;#x3057;&amp;#x7A74;&amp;#x3092;&amp;#x8A73;&amp;#x3057;&amp;#x304F;&amp;#x898B;&amp;#x308B;&lt;/a&gt;&lt;br /&gt;
&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/lq3uBqJYiCU?feature=oembed&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; allowfullscreen title=&quot;【2018年版】Excel VBA定数の作法と座席割付ロジックの落とし穴（UI/UXの教訓）&quot;&gt;&lt;/iframe&gt;&lt;cite class=&quot;hatena-citation&quot;&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=lq3uBqJYiCU&quot;&gt;www.youtube.com&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;</content>        
        <link rel="enclosure" href="https://cdn.image.st-hatena.com/image/scale/a608c69bece9cf997fece8e7fefef3960e461120/backend=imagemagick;version=1;width=1300/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fk%2Fken3memo%2F20260609%2F20260609005741.png" type="image/png" length="0" />

        <author>
            <name>ken3memo</name>
        </author>
    </entry>
    
  
    
    
    <entry>
        <title>30分の過去動画＋ソースコードから ブログのひな型を作成するテスト 26年06月にテスト </title>
        <link href="https://ken3memo.hatenablog.com/entry/2026/06/08/173000"/>
        <id>hatenablog://entry/14945776032040170043</id>
        <published>2026-06-08T17:30:00+09:00</published>
        <updated>2026-06-08T17:30:01+09:00</updated>        <summary type="html">現在私は「過去動画の字幕を修正しています」と突然の自分語りからブログを始めて、 作業内容としては、過去動画と読み方の資料として、ソースコードを渡し、字幕を修正しています。 そのついでで、フト、 過去動画 と ソースコードから ブログを急く生出来ないか？と思い、作成したテストが下記です。 ※今の時代、ここまでできるんですね。 ※※おっと、他の作業してないで、字幕修正に戻らないとなぁ・・・AIでコードを作成する時代で、 AIに過去動画と過去ソースを渡して、ブログのひな型を作成してもらった話って、違うか・・・ 下記、作成したブログです※前説、自分語りが長くてすみません コピペ量産マクロの限界！12レ…</summary>
        <content type="html">&lt;p&gt;現在私は「過去動画の字幕を修正しています」と突然の自分語りからブログを始めて、&lt;br /&gt;
作業内容としては、&lt;strong&gt;過去動画&lt;/strong&gt;と&lt;strong&gt;読み方の資料として、ソースコード&lt;/strong&gt;を渡し、&lt;strong&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;字幕を修正&lt;/span&gt;&lt;/strong&gt;しています。&lt;br /&gt;
そのついでで、フト、&lt;br /&gt;
過去動画&lt;br /&gt;
と&lt;br /&gt;
ソースコードから&lt;br /&gt;
ブログを急く生出来ないか？と思い、作成したテストが下記です。&lt;br /&gt;
※今の時代、ここまでできるんですね。&lt;br /&gt;
※※おっと、他の作業してないで、字幕修正に戻らないとなぁ・・・&lt;/p&gt;&lt;p&gt;AIでコードを作成する時代で、&lt;br /&gt;
AIに過去動画と過去ソースを渡して、ブログのひな型を作成してもらった話って、違うか・・・&lt;br /&gt;
&lt;strong&gt;下記、作成したブログです&lt;/strong&gt;※前説、自分語りが長くてすみません&lt;/p&gt;

&lt;div class=&quot;section&quot;&gt;
    &lt;h3 id=&quot;コピペ量産マクロの限界12レース分の処理をたった1つのループに集約して絶望を希望に変えるVBA構造化テクニック&quot;&gt;コピペ量産マクロの限界！12レース分の処理を「たった1つのループ」に集約して絶望を希望に変えるVBA構造化テクニック&lt;/h3&gt;
    &lt;figure class=&quot;figure-image figure-image-fotolife&quot; title=&quot;内容の図解もAIにお願いしました&quot;&gt;&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260608/20260608160620.png&quot; width=&quot;1200&quot; height=&quot;670&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;figcaption&gt;内容の図解もAIにお願いしました&lt;/figcaption&gt;&lt;/figure&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;コピペで膨れ上がったマクロに絶望していませんか&quot;&gt;コピペで膨れ上がったマクロに絶望していませんか？&lt;/h4&gt;
    &lt;p&gt;「1リクエスト分の処理がうまく動いたから、2回目、3回目はコードをそのままコピー＆ペーストして並べちゃえ！」&lt;/p&gt;&lt;p&gt;VBAを始めたばかりの頃、誰もが一度はやってしまう力技のプログラム。とりあえず動くからいいや…と安心したのも束の間、ほんの少しの修正（「データを書き込む位置を1行ずらしたい」「空行を1行足したい」など）が入った瞬間に地獄が始まります。コピペした12箇所すべてを、目を皿のようにして手作業で直していく絶望感。1箇所でも修正を忘れたら即バグの原因になります。&lt;/p&gt;&lt;p&gt;この記事では、そんな&#39;&#39;&lt;b&gt;「コピペ量産のクソプログラム」&lt;/b&gt;&#39;&#39;が、なぜ現場で嫌われるのか、そして&#39;&#39;&lt;b&gt;「変数とFor～Nextループ」&lt;/b&gt;&#39;&#39;を使うことで、どれほど美しく、メンテナンスしやすくなるのかを実演解説します。&lt;/p&gt;&lt;p&gt;当時のInternet Explorer（IE）操作を題材にしていますが、ここで解説する&#39;&#39;&lt;b&gt;「プログラムの構造化・リファクタリングの思考プロセス」&lt;/b&gt;&#39;&#39;は、現代のExcel操作や最新ブラウザの自動化（Selenium等）でも完全に共通する不変の基礎知識です。&lt;/p&gt;&lt;p&gt;「1カ所直すと12カ所直さなきゃいけない地獄」から今すぐ脱出しましょう！&lt;/p&gt;&lt;p&gt;&lt;hr&gt;&lt;br /&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;当時の原文コピペで量産したマクロ-ie_copy_pe-&quot;&gt;【当時の原文】コピペで量産したマクロ（ ie_copy_pe ）&lt;/h4&gt;
    &lt;p&gt;まずは、1レース分の処理をベースに、2レース目、3レース目と同じコードをひたすら下にコピペして繋ぎ合わせた、当時の「クソプログラム」の構造をご覧ください。7レース分だけでも膨大な行数になり、途中で何をやっているか分からなくなります。&lt;/p&gt;
&lt;pre class=&quot;code lang-vb&quot; data-lang=&quot;vb&quot; data-unlink&gt;&lt;span class=&quot;synStatement&quot;&gt;Sub&lt;/span&gt; ie_copy_pe&lt;span class=&quot;synStatement&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;IEの表示をテストする。&lt;/span&gt;

&lt;span class=&quot;synComment&quot;&gt;&#39;IEの起動&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; objIE &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; InternetExplorer&lt;span class=&quot;synComment&quot;&gt; &#39;変数を定義します。&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Set&lt;/span&gt; objIE &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synIdentifier&quot;&gt;CreateObject&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;InternetExplorer.Application&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;オブジェクトを作成します。&lt;/span&gt;
    objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Visible &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;True&lt;/span&gt;     &lt;span class=&quot;synComment&quot;&gt; &#39;可視、Trueで見えるようにします。&lt;/span&gt;
    
&lt;span class=&quot;synComment&quot;&gt;&#39;表示位置(左上の座標)とサイズ(高さ・幅)を調整する&lt;/span&gt;
    objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;FullScreen &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;※Trueのモードだとびっくりするよ&lt;/span&gt;
    objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Top &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;     &lt;span class=&quot;synComment&quot;&gt; &#39;左上 上位置&lt;/span&gt;
    objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;synIdentifier&quot;&gt;Left&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;    &lt;span class=&quot;synComment&quot;&gt; &#39;左上 左位置&lt;/span&gt;
    objIE&lt;span class=&quot;synStatement&quot;&gt;.Width&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;800&lt;/span&gt;   &lt;span class=&quot;synComment&quot;&gt; &#39;横幅&lt;/span&gt;
    objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Height &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;600&lt;/span&gt;  &lt;span class=&quot;synComment&quot;&gt; &#39;高さ&lt;/span&gt;
    
&lt;span class=&quot;synComment&quot;&gt;&#39;XXXバー、外観・外枠の調整。&lt;/span&gt;
    objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Toolbar &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;True&lt;/span&gt;    &lt;span class=&quot;synComment&quot;&gt; &#39;タブの切り替えで必要なので、ツールバーを表示にする&lt;/span&gt;
    objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;MenuBar &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;False&lt;/span&gt;   &lt;span class=&quot;synComment&quot;&gt; &#39;メニューは非表示にする&lt;/span&gt;
    objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;AddressBar &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;True&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;URLなど アドレスバーは確認のため、表示する&lt;/span&gt;
    objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;StatusBar &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;True&lt;/span&gt;  &lt;span class=&quot;synComment&quot;&gt; &#39;一番下のステータスバーを表示。&lt;/span&gt;

&lt;span class=&quot;synComment&quot;&gt;&#39;処理したいページを表示します。&lt;/span&gt;
    objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Navigate &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;http://www.jra.go.jp/&amp;quot;&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;.Navigate メソッドで JRA表示する。&lt;/span&gt;
   &lt;span class=&quot;synComment&quot;&gt; &#39;Navigate と Navigate2 の 違いが私もイマイチわかってませんが&lt;/span&gt;

&lt;span class=&quot;synComment&quot;&gt;&#39;ページの表示完了を待ちます。&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;While&lt;/span&gt; objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;ReadyState &lt;span class=&quot;synStatement&quot;&gt;&amp;lt;&amp;gt;&lt;/span&gt; READYSTATE_COMPLETE &lt;span class=&quot;synStatement&quot;&gt;Or&lt;/span&gt; objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Busy &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;.ReadyState &amp;lt;&amp;gt; 4の間まわる。&lt;/span&gt;
        &lt;span class=&quot;synIdentifier&quot;&gt;DoEvents&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;重いので嫌いな人居るけど。&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Wend&lt;/span&gt;
    
&lt;span class=&quot;synComment&quot;&gt;&#39;ページが表示されたので、表示された文章に対して、処理を行います。&lt;/span&gt;
   &lt;span class=&quot;synComment&quot;&gt; &#39;HTML文章objIE.Documentからデータを取得&lt;/span&gt;
   &lt;span class=&quot;synComment&quot;&gt; &#39;入力フォームDocument.Formsでデータをセットしたり送信したり&lt;/span&gt;
   &lt;span class=&quot;synComment&quot;&gt; &#39;リンクDocument.Linksでリンクの情報を取得&lt;/span&gt;
    
        
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; i     &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;Integer&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;添え字 i番目などで使用&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; yLINE &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;Integer&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;行カウンタ、Y行目&lt;/span&gt;
    
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; oDocument &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; HTMLDocument
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; objA &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; HTMLAnchorElement
    
    Range&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;A1&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;調査したURLは &amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; strURL &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot; です&amp;quot;&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;A1にURLを記述(セット)&lt;/span&gt;
    Range&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;D1&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;リンクの数は &amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Document&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Links&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Length &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;です&amp;quot;&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;D1にリンクの数をセット&lt;/span&gt;

    Range&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;A2&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;.Href(リンク先)&amp;quot;&lt;/span&gt;  &lt;span class=&quot;synComment&quot;&gt; &#39;A2～F2 ２行目に見出しをセットする&lt;/span&gt;
    Range&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;B2&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;.OuterText&amp;quot;&lt;/span&gt;
    Range&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;C2&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;.OuterHTML&amp;quot;&lt;/span&gt;
    Range&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;D2&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;.InnerText&amp;quot;&lt;/span&gt;
    Range&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;E2&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;.InnerHTML&amp;quot;&lt;/span&gt;
    Range&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;F2&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;.Target&amp;quot;&lt;/span&gt;
    Columns&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;A:F&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;ColumnWidth &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;22&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;列幅を22に変更&lt;/span&gt;

    yLINE &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;3&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;セット開始の行を代入する&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;For&lt;/span&gt; i &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;To&lt;/span&gt; objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Document&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Links&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Length &lt;span class=&quot;synStatement&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;
       &lt;span class=&quot;synComment&quot;&gt; &#39;データをセルへセットする  &#39;を付けて文字列にする(セルにセットしたいので)&lt;/span&gt;
        Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;yLINE&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;A&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&#39;&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Document&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Links&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;i&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;href     &lt;span class=&quot;synComment&quot;&gt; &#39;リンク先&lt;/span&gt;
        Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;yLINE&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;B&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&#39;&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Document&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Links&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;i&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;outerText&lt;span class=&quot;synComment&quot;&gt; &#39;自分を含む テキスト(Innerと変わりない？)&lt;/span&gt;
        Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;yLINE&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;C&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&#39;&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Document&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Links&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;i&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;outerHTML&lt;span class=&quot;synComment&quot;&gt; &#39;自分を含む HTML&lt;/span&gt;
        Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;yLINE&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;D&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&#39;&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Document&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Links&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;i&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;innerText&lt;span class=&quot;synComment&quot;&gt; &#39;内側のテキスト&lt;/span&gt;
        Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;yLINE&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;E&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&#39;&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Document&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Links&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;i&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;innerHTML&lt;span class=&quot;synComment&quot;&gt; &#39;内側のHTML&lt;/span&gt;
        Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;yLINE&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;F&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&#39;&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Document&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Links&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;i&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;target   &lt;span class=&quot;synComment&quot;&gt; &#39;_Blank や 表示先フレームの名前など&lt;/span&gt;
        
       &lt;span class=&quot;synComment&quot;&gt; &#39;オッズを見つけたら クリック&lt;/span&gt;
        &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt; &lt;span class=&quot;synIdentifier&quot;&gt;InStr&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Document&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Links&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;i&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;innerHTML&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;オッズ&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Then&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;内側のHTML&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;Set&lt;/span&gt; objA &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Document&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Links&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;i&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;見つけたAタグオブジェ(リンク)を代入&lt;/span&gt;
            objA&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;Click&lt;/span&gt;  &lt;span class=&quot;synComment&quot;&gt; &#39;オッズを押す&lt;/span&gt;
           &lt;span class=&quot;synComment&quot;&gt; &#39;objA.FireEvent (&amp;quot;onClick&amp;quot;)  &#39;onClick イベントを発行&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;Exit&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;For&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;見つけたのでループを抜ける&lt;/span&gt;
        &lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt;
        yLINE &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; yLINE &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;セット位置(行)を＋1する&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Next&lt;/span&gt; i

   &lt;span class=&quot;synComment&quot;&gt; &#39;開催日を探す&lt;/span&gt;
&lt;span class=&quot;synComment&quot;&gt;&#39;ページの表示完了を待ちます。&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;While&lt;/span&gt; objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;ReadyState &lt;span class=&quot;synStatement&quot;&gt;&amp;lt;&amp;gt;&lt;/span&gt; READYSTATE_COMPLETE &lt;span class=&quot;synStatement&quot;&gt;Or&lt;/span&gt; objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Busy &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;.ReadyState &amp;lt;&amp;gt; 4の間まわる。&lt;/span&gt;
        &lt;span class=&quot;synIdentifier&quot;&gt;DoEvents&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;重いので嫌いな人居るけど。&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Wend&lt;/span&gt;

   &lt;span class=&quot;synComment&quot;&gt; &#39;開催日のリンクをあさる&lt;/span&gt;
    Range&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;A1&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;調査したURLは &amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; strURL &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot; です&amp;quot;&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;A1にURLを記述(セット)&lt;/span&gt;
    Range&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;D1&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;リンクの数は &amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Document&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Links&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Length &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;です&amp;quot;&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;D1にリンクの数をセット&lt;/span&gt;

    Range&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;A2&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;.Href(リンク先)&amp;quot;&lt;/span&gt;  &lt;span class=&quot;synComment&quot;&gt; &#39;A2～F2 ２行目に見出しをセットする&lt;/span&gt;
    Range&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;B2&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;.OuterText&amp;quot;&lt;/span&gt;
    Range&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;C2&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;.OuterHTML&amp;quot;&lt;/span&gt;
    Range&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;D2&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;.InnerText&amp;quot;&lt;/span&gt;
    Range&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;E2&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;.InnerHTML&amp;quot;&lt;/span&gt;
    Range&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;F2&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;.Target&amp;quot;&lt;/span&gt;
    Columns&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;A:F&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;ColumnWidth &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;22&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;列幅を22に変更&lt;/span&gt;

    yLINE &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;3&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;セット開始の行を代入する&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;For&lt;/span&gt; i &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;To&lt;/span&gt; objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Document&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Links&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Length &lt;span class=&quot;synStatement&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;
        &lt;span class=&quot;synComment&quot;&gt; &#39;データをセルへセットする  &#39;を付けて文字列にする(セルにセットしたいので)&lt;/span&gt;
        Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;yLINE&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;A&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&#39;&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Document&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Links&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;i&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;href     &lt;span class=&quot;synComment&quot;&gt; &#39;リンク先&lt;/span&gt;
        Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;yLINE&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;B&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&#39;&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Document&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Links&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;i&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;outerText&lt;span class=&quot;synComment&quot;&gt; &#39;自分を含む テキスト(Innerと変わりない？)&lt;/span&gt;
        Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;yLINE&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;C&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&#39;&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Document&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Links&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;i&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;outerHTML&lt;span class=&quot;synComment&quot;&gt; &#39;自分を含む HTML&lt;/span&gt;
        Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;yLINE&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;D&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&#39;&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Document&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Links&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;i&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;innerText&lt;span class=&quot;synComment&quot;&gt; &#39;内側のテキスト&lt;/span&gt;
        Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;yLINE&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;E&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&#39;&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Document&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Links&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;i&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;innerHTML&lt;span class=&quot;synComment&quot;&gt; &#39;内側のHTML&lt;/span&gt;
        Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;yLINE&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;F&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&#39;&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Document&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Links&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;i&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;target   &lt;span class=&quot;synComment&quot;&gt; &#39;_Blank や 表示先フレームの名前など&lt;/span&gt;
        
       &lt;span class=&quot;synComment&quot;&gt; &#39;開催日を見つけたら書き出す&lt;/span&gt;
        &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt; &lt;span class=&quot;synIdentifier&quot;&gt;Right&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Document&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Links&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;i&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;innerText&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;日&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Then&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;内側のTEXT&lt;/span&gt;
           
           &lt;span class=&quot;synStatement&quot;&gt;Set&lt;/span&gt; objA &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Document&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Links&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;i&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;見つけたAタグオブジェ(リンク)を代入&lt;/span&gt;
           Debug&lt;span class=&quot;synStatement&quot;&gt;.Print&lt;/span&gt; objA&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;innerText
           Debug&lt;span class=&quot;synStatement&quot;&gt;.Print&lt;/span&gt; objA&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;innerHTML
           
           objA&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;Click&lt;/span&gt;  &lt;span class=&quot;synComment&quot;&gt; &#39;開催日を押す&lt;/span&gt;
           
           &lt;span class=&quot;synStatement&quot;&gt;Exit&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;For&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;見つけたのでループを抜ける&lt;/span&gt;
        &lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt;
        yLINE &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; yLINE &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;セット位置(行)を＋1する&lt;/span&gt;

    &lt;span class=&quot;synStatement&quot;&gt;Next&lt;/span&gt; i

&lt;span class=&quot;synComment&quot;&gt;&#39;試しに1Rを取り込む&lt;/span&gt;
&lt;span class=&quot;synComment&quot;&gt;&#39;ページの表示完了を待ちます。&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;While&lt;/span&gt; objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;ReadyState &lt;span class=&quot;synStatement&quot;&gt;&amp;lt;&amp;gt;&lt;/span&gt; READYSTATE_COMPLETE &lt;span class=&quot;synStatement&quot;&gt;Or&lt;/span&gt; objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Busy &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;.ReadyState &amp;lt;&amp;gt; 4の間まわる。&lt;/span&gt;
        &lt;span class=&quot;synIdentifier&quot;&gt;DoEvents&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;重いので嫌いな人居るけど。&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Wend&lt;/span&gt;

    &lt;span class=&quot;synStatement&quot;&gt;For&lt;/span&gt; i &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;To&lt;/span&gt; objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Document&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Links&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Length &lt;span class=&quot;synStatement&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;
        
       &lt;span class=&quot;synComment&quot;&gt; &#39;1Rを見つけたら クリック&lt;/span&gt;
        &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt; &lt;span class=&quot;synIdentifier&quot;&gt;InStr&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Document&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Links&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;i&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;innerHTML&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&amp;quot;&amp;quot;1R&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Then&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;内側のHTML&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;Set&lt;/span&gt; objA &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Document&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Links&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;i&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;見つけたAタグオブジェ(リンク)を代入&lt;/span&gt;
            objA&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;Click&lt;/span&gt;  &lt;span class=&quot;synComment&quot;&gt; &#39;1Rを押す&lt;/span&gt;
           &lt;span class=&quot;synComment&quot;&gt; &#39;objA.FireEvent (&amp;quot;onClick&amp;quot;)  &#39;onClick イベントを発行&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;Exit&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;For&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;見つけたのでループを抜ける&lt;/span&gt;
        &lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Next&lt;/span&gt; i

&lt;span class=&quot;synComment&quot;&gt;&#39;単勝の表を取り込む&lt;/span&gt;
   &lt;span class=&quot;synComment&quot;&gt; &#39;ページの表示完了を待ちます。&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;While&lt;/span&gt; objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;ReadyState &lt;span class=&quot;synStatement&quot;&gt;&amp;lt;&amp;gt;&lt;/span&gt; READYSTATE_COMPLETE &lt;span class=&quot;synStatement&quot;&gt;Or&lt;/span&gt; objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Busy &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;.ReadyState &amp;lt;&amp;gt; 4の間まわる。&lt;/span&gt;
        &lt;span class=&quot;synIdentifier&quot;&gt;DoEvents&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;重いので嫌いな人居るけど。&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Wend&lt;/span&gt;

   &lt;span class=&quot;synComment&quot;&gt; &#39;表、テーブルを探る&lt;/span&gt;
  &lt;span class=&quot;synComment&quot;&gt; &#39;テーブルを探す&lt;/span&gt;
   &lt;span class=&quot;synComment&quot;&gt; &#39;タグの取出しが、.getElementsByTagName(&amp;quot;TABLE&amp;quot;)で 可能なので、&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; objTABLEs &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;Object&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;TABLE複数の格納用&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; objTABLE &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; HTMLTable&lt;span class=&quot;synComment&quot;&gt; &#39;テーブル単体&lt;/span&gt;
    
   &lt;span class=&quot;synComment&quot;&gt; &#39;TABLEタグを抜き 複数のテーブルをセット&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Set&lt;/span&gt; objTABLEs &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Document&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;getElementsByTagName&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;TABLE&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;
   &lt;span class=&quot;synComment&quot;&gt; &#39;↑で代入したオブジェクトからテーブルデータを取り出す｡&lt;/span&gt;
    
    &lt;span class=&quot;synStatement&quot;&gt;Set&lt;/span&gt; objTABLE &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Nothing&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;オブジェクトを空にする&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;For&lt;/span&gt; i &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;To&lt;/span&gt; objTABLEs&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Length &lt;span class=&quot;synStatement&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;テーブル数分回す&lt;/span&gt;
        &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt; objTABLEs&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;i&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;Rows&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;innerText &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;枠番&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Then&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;左上が枠番を見つける&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;Set&lt;/span&gt; objTABLE &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; objTABLEs&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;i&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;i盤目を代入&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;Exit&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;For&lt;/span&gt;
        &lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Next&lt;/span&gt; i
    
   &lt;span class=&quot;synComment&quot;&gt; &#39;↑で見つかったかチェックする&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt; objTABLE &lt;span class=&quot;synStatement&quot;&gt;Is&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Nothing&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Then&lt;/span&gt;
        &lt;span class=&quot;synIdentifier&quot;&gt;MsgBox&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;枠番のテーブルが見つかりません&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;synStatement&quot;&gt;Exit&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Sub&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;エラー表示して抜ける&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt;
    
   &lt;span class=&quot;synComment&quot;&gt; &#39;まず、書き込み先シート、データをクリアする&lt;/span&gt;
    Cells&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;synPreProc&quot;&gt;Delete&lt;/span&gt; Shift:&lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt;xlUp&lt;span class=&quot;synComment&quot;&gt; &#39;シート全体を削除する&lt;/span&gt;
    Range&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;A2&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;).Select&lt;/span&gt;      &lt;span class=&quot;synComment&quot;&gt; &#39;先頭A1を選択する、&lt;/span&gt;
    
   &lt;span class=&quot;synComment&quot;&gt; &#39;表をDATAシートに書き出す&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; x &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;Integer&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;列の管理&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; y &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;Integer&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;行の管理&lt;/span&gt;
    
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; SET_Y &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;Integer&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; SET_X &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;Integer&lt;/span&gt;
    
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; objCELL &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; HTMLTableCell
    
    SET_Y &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;2&lt;/span&gt;
    Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;SET_Y &lt;span class=&quot;synStatement&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;1R&amp;quot;&lt;/span&gt;
    
   &lt;span class=&quot;synComment&quot;&gt; &#39;Webの表をシートへ転記(代入する)&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;For&lt;/span&gt; y &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;To&lt;/span&gt; objTABLE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Rows&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Length &lt;span class=&quot;synStatement&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;行のループ&lt;/span&gt;
        SET_X &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;
        &lt;span class=&quot;synStatement&quot;&gt;For&lt;/span&gt; x &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;To&lt;/span&gt; objTABLE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Rows&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;y&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;Cells&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Length &lt;span class=&quot;synStatement&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;列数分ループ&lt;/span&gt;
           &lt;span class=&quot;synComment&quot;&gt; &#39; objTABLE.rows(行).cells(列)&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;Set&lt;/span&gt; objCELL &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; objTABLE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Rows&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;y&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;x&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;
            
            &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt; objCELL&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;rowSpan &lt;span class=&quot;synStatement&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Then&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;縦に複数の時&lt;/span&gt;
                Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;SET_Y &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; SET_X&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; objCELL&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;innerText &lt;span class=&quot;synComment&quot;&gt; &#39;下にも同じくセット&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt;
                        
           &lt;span class=&quot;synComment&quot;&gt; &#39;既にデータありか、縦に結合されているか？&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Len(&lt;/span&gt;&lt;span class=&quot;synIdentifier&quot;&gt;Trim&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;SET_Y&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; SET_X&lt;span class=&quot;synStatement&quot;&gt;)))&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Then&lt;/span&gt;
                SET_X &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; SET_X &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt;
            
            Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;SET_Y&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; SET_X&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; objCELL&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;innerText &lt;span class=&quot;synComment&quot;&gt; &#39;データセット&lt;/span&gt;
            
           &lt;span class=&quot;synComment&quot;&gt; &#39;横に結合されているか判断&lt;/span&gt;
            SET_X &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; SET_X &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; objCELL&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;colSpan &lt;span class=&quot;synComment&quot;&gt; &#39;カラム分 横に移動&lt;/span&gt;
        &lt;span class=&quot;synStatement&quot;&gt;Next&lt;/span&gt;
        SET_Y &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; SET_Y &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Next&lt;/span&gt;



&lt;span class=&quot;synComment&quot;&gt;&#39;copy&lt;/span&gt;
&lt;span class=&quot;synComment&quot;&gt;&#39;試しに2Rを取り込む&lt;/span&gt;

    &lt;span class=&quot;synStatement&quot;&gt;For&lt;/span&gt; i &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;To&lt;/span&gt; objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Document&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Links&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Length &lt;span class=&quot;synStatement&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;
        
       &lt;span class=&quot;synComment&quot;&gt; &#39;1Rを見つけたら クリック&lt;/span&gt;
        &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt; &lt;span class=&quot;synIdentifier&quot;&gt;InStr&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Document&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Links&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;i&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;innerHTML&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&amp;quot;&amp;quot;2R&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Then&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;内側のHTML&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;Set&lt;/span&gt; objA &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Document&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Links&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;i&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;見つけたAタグオブジェ(リンク)を代入&lt;/span&gt;
            objA&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;Click&lt;/span&gt;  &lt;span class=&quot;synComment&quot;&gt; &#39;1Rを押す&lt;/span&gt;
           &lt;span class=&quot;synComment&quot;&gt; &#39;objA.FireEvent (&amp;quot;onClick&amp;quot;)  &#39;onClick イベントを発行&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;Exit&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;For&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;見つけたのでループを抜ける&lt;/span&gt;
        &lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Next&lt;/span&gt; i

&lt;span class=&quot;synComment&quot;&gt;&#39;単勝の表を取り込む&lt;/span&gt;
   &lt;span class=&quot;synComment&quot;&gt; &#39;ページの表示完了を待ちます。&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;While&lt;/span&gt; objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;ReadyState &lt;span class=&quot;synStatement&quot;&gt;&amp;lt;&amp;gt;&lt;/span&gt; READYSTATE_COMPLETE &lt;span class=&quot;synStatement&quot;&gt;Or&lt;/span&gt; objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Busy &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;.ReadyState &amp;lt;&amp;gt; 4の間まわる。&lt;/span&gt;
        &lt;span class=&quot;synIdentifier&quot;&gt;DoEvents&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;重いので嫌いな人居るけど。&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Wend&lt;/span&gt;

   &lt;span class=&quot;synComment&quot;&gt; &#39;表、テーブルを探る&lt;/span&gt;
   &lt;span class=&quot;synComment&quot;&gt; &#39;テーブルを探す&lt;/span&gt;
   &lt;span class=&quot;synComment&quot;&gt; &#39;タグの取出しが、.getElementsByTagName(&amp;quot;TABLE&amp;quot;)で 可能なので、&lt;/span&gt;
   &lt;span class=&quot;synComment&quot;&gt; &#39;TABLEタグを抜き 複数のテーブルをセット&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Set&lt;/span&gt; objTABLEs &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Document&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;getElementsByTagName&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;TABLE&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;
   &lt;span class=&quot;synComment&quot;&gt; &#39;↑で代入したオブジェクトからテーブルデータを取り出す｡&lt;/span&gt;
    
    &lt;span class=&quot;synStatement&quot;&gt;Set&lt;/span&gt; objTABLE &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Nothing&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;オブジェクトを空にする&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;For&lt;/span&gt; i &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;To&lt;/span&gt; objTABLEs&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Length &lt;span class=&quot;synStatement&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;テーブル数分回す&lt;/span&gt;
        &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt; objTABLEs&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;i&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;Rows&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;innerText &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;枠番&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Then&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;左上が枠番を見つける&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;Set&lt;/span&gt; objTABLE &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; objTABLEs&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;i&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;i盤目を代入&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;Exit&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;For&lt;/span&gt;
        &lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Next&lt;/span&gt; i
    
   &lt;span class=&quot;synComment&quot;&gt; &#39;↑で見つかったかチェックする&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt; objTABLE &lt;span class=&quot;synStatement&quot;&gt;Is&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Nothing&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Then&lt;/span&gt;
        &lt;span class=&quot;synIdentifier&quot;&gt;MsgBox&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;枠番のテーブルが見つかりません&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;synStatement&quot;&gt;Exit&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Sub&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;エラー表示して抜ける&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt;
    
    
   &lt;span class=&quot;synComment&quot;&gt; &#39;表をDATAシートに書き出す&lt;/span&gt;
    
    SET_Y &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; SET_Y &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;2&lt;/span&gt;
    Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;SET_Y &lt;span class=&quot;synStatement&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;2R&amp;quot;&lt;/span&gt;
    
   &lt;span class=&quot;synComment&quot;&gt; &#39;Webの表をシートへ転記(代入する)&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;For&lt;/span&gt; y &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;To&lt;/span&gt; objTABLE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Rows&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Length &lt;span class=&quot;synStatement&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;行のループ&lt;/span&gt;
        SET_X &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;
        &lt;span class=&quot;synStatement&quot;&gt;For&lt;/span&gt; x &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;To&lt;/span&gt; objTABLE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Rows&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;y&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;Cells&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Length &lt;span class=&quot;synStatement&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;列数分ループ&lt;/span&gt;
           &lt;span class=&quot;synComment&quot;&gt; &#39; objTABLE.rows(行).cells(列)&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;Set&lt;/span&gt; objCELL &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; objTABLE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Rows&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;y&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;x&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;
            
            &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt; objCELL&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;rowSpan &lt;span class=&quot;synStatement&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Then&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;縦に複数の時&lt;/span&gt;
                Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;SET_Y &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; SET_X&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; objCELL&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;innerText &lt;span class=&quot;synComment&quot;&gt; &#39;下にも同じくセット&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt;
                        
           &lt;span class=&quot;synComment&quot;&gt; &#39;既にデータありか、縦に結合されているか？&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Len(&lt;/span&gt;&lt;span class=&quot;synIdentifier&quot;&gt;Trim&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;SET_Y&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; SET_X&lt;span class=&quot;synStatement&quot;&gt;)))&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Then&lt;/span&gt;
                SET_X &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; SET_X &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt;
            
            Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;SET_Y&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; SET_X&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; objCELL&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;innerText &lt;span class=&quot;synComment&quot;&gt; &#39;データセット&lt;/span&gt;
            
           &lt;span class=&quot;synComment&quot;&gt; &#39;横に結合されているか判断&lt;/span&gt;
            SET_X &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; SET_X &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; objCELL&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;colSpan &lt;span class=&quot;synComment&quot;&gt; &#39;カラム分 横に移動&lt;/span&gt;
        &lt;span class=&quot;synStatement&quot;&gt;Next&lt;/span&gt;
        SET_Y &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; SET_Y &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Next&lt;/span&gt;

&lt;span class=&quot;synComment&quot;&gt;&#39;copy&lt;/span&gt;
&lt;span class=&quot;synComment&quot;&gt;&#39;試しに3Rを取り込む&lt;/span&gt;

    &lt;span class=&quot;synStatement&quot;&gt;For&lt;/span&gt; i &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;To&lt;/span&gt; objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Document&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Links&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Length &lt;span class=&quot;synStatement&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;
        
       &lt;span class=&quot;synComment&quot;&gt; &#39;1Rを見つけたら クリック&lt;/span&gt;
        &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt; &lt;span class=&quot;synIdentifier&quot;&gt;InStr&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Document&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Links&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;i&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;innerHTML&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&amp;quot;&amp;quot;3R&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Then&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;内側のHTML&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;Set&lt;/span&gt; objA &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Document&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Links&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;i&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;見つけたAタグオブジェ(リンク)を代入&lt;/span&gt;
            objA&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;Click&lt;/span&gt;  &lt;span class=&quot;synComment&quot;&gt; &#39;1Rを押す&lt;/span&gt;
           &lt;span class=&quot;synComment&quot;&gt; &#39;objA.FireEvent (&amp;quot;onClick&amp;quot;)  &#39;onClick イベントを発行&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;Exit&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;For&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;見つけたのでループを抜ける&lt;/span&gt;
        &lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Next&lt;/span&gt; i

&lt;span class=&quot;synComment&quot;&gt;&#39;単勝の表を取り込む&lt;/span&gt;
   &lt;span class=&quot;synComment&quot;&gt; &#39;ページの表示完了を待ちます。&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;While&lt;/span&gt; objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;ReadyState &lt;span class=&quot;synStatement&quot;&gt;&amp;lt;&amp;gt;&lt;/span&gt; READYSTATE_COMPLETE &lt;span class=&quot;synStatement&quot;&gt;Or&lt;/span&gt; objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Busy &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;.ReadyState &amp;lt;&amp;gt; 4の間まわる。&lt;/span&gt;
        &lt;span class=&quot;synIdentifier&quot;&gt;DoEvents&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;重いので嫌いな人居るけど。&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Wend&lt;/span&gt;

   &lt;span class=&quot;synComment&quot;&gt; &#39;表、テーブルを探る&lt;/span&gt;
  &lt;span class=&quot;synComment&quot;&gt; &#39;テーブルを探す&lt;/span&gt;
   &lt;span class=&quot;synComment&quot;&gt; &#39;タグの取出しが、.getElementsByTagName(&amp;quot;TABLE&amp;quot;)で 可能なので、&lt;/span&gt;
   &lt;span class=&quot;synComment&quot;&gt; &#39;TABLEタグを抜き 複数のテーブルをセット&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Set&lt;/span&gt; objTABLEs &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Document&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;getElementsByTagName&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;TABLE&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;
   &lt;span class=&quot;synComment&quot;&gt; &#39;↑で代入したオブジェクトからテーブルデータを取り出す｡&lt;/span&gt;
    
    &lt;span class=&quot;synStatement&quot;&gt;Set&lt;/span&gt; objTABLE &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Nothing&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;オブジェクトを空にする&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;For&lt;/span&gt; i &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;To&lt;/span&gt; objTABLEs&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Length &lt;span class=&quot;synStatement&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;テーブル数分回す&lt;/span&gt;
        &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt; objTABLEs&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;i&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;Rows&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;innerText &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;枠番&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Then&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;左上が枠番を見つける&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;Set&lt;/span&gt; objTABLE &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; objTABLEs&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;i&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;i盤目を代入&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;Exit&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;For&lt;/span&gt;
        &lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Next&lt;/span&gt; i
    
   &lt;span class=&quot;synComment&quot;&gt; &#39;↑で見つかったかチェックする&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt; objTABLE &lt;span class=&quot;synStatement&quot;&gt;Is&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Nothing&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Then&lt;/span&gt;
        &lt;span class=&quot;synIdentifier&quot;&gt;MsgBox&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;枠番のテーブルが見つかりません&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;synStatement&quot;&gt;Exit&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Sub&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;エラー表示して抜ける&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt;
    
    
   &lt;span class=&quot;synComment&quot;&gt; &#39;表をDATAシートに書き出す&lt;/span&gt;
    
    SET_Y &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; SET_Y &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;2&lt;/span&gt;
    Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;SET_Y &lt;span class=&quot;synStatement&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;3R&amp;quot;&lt;/span&gt;
    
   &lt;span class=&quot;synComment&quot;&gt; &#39;Webの表をシートへ転記(代入する)&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;For&lt;/span&gt; y &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;To&lt;/span&gt; objTABLE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Rows&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Length &lt;span class=&quot;synStatement&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;行のループ&lt;/span&gt;
        SET_X &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;
        &lt;span class=&quot;synStatement&quot;&gt;For&lt;/span&gt; x &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;To&lt;/span&gt; objTABLE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Rows&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;y&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;Cells&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Length &lt;span class=&quot;synStatement&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;列数分ループ&lt;/span&gt;
           &lt;span class=&quot;synComment&quot;&gt; &#39; objTABLE.rows(行).cells(列)&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;Set&lt;/span&gt; objCELL &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; objTABLE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Rows&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;y&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;x&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;
            
            &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt; objCELL&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;rowSpan &lt;span class=&quot;synStatement&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Then&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;縦に複数の時&lt;/span&gt;
                Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;SET_Y &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; SET_X&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; objCELL&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;innerText &lt;span class=&quot;synComment&quot;&gt; &#39;下にも同じくセット&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt;
                        
           &lt;span class=&quot;synComment&quot;&gt; &#39;既にデータありか、縦に結合されているか？&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Len(&lt;/span&gt;&lt;span class=&quot;synIdentifier&quot;&gt;Trim&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;SET_Y&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; SET_X&lt;span class=&quot;synStatement&quot;&gt;)))&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Then&lt;/span&gt;
                SET_X &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; SET_X &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt;
            
            Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;SET_Y&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; SET_X&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; objCELL&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;innerText &lt;span class=&quot;synComment&quot;&gt; &#39;データセット&lt;/span&gt;
            
           &lt;span class=&quot;synComment&quot;&gt; &#39;横に結合されているか判断&lt;/span&gt;
            SET_X &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; SET_X &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; objCELL&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;colSpan &lt;span class=&quot;synComment&quot;&gt; &#39;カラム分 横に移動&lt;/span&gt;
        &lt;span class=&quot;synStatement&quot;&gt;Next&lt;/span&gt;
        SET_Y &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; SET_Y &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Next&lt;/span&gt;

&lt;span class=&quot;synComment&quot;&gt;&#39;（※以下、4R〜7Rまで同様の泥臭いコピペコードが延々と続くため省略）&lt;/span&gt;

   &lt;span class=&quot;synComment&quot;&gt; &#39;処理が終わったので、IEを閉じます。&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt; &lt;span class=&quot;synIdentifier&quot;&gt;MsgBox&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;IEを閉じますか?&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;vbYesNo&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;vbYes&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Then&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;終了確認&lt;/span&gt;
        objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;synPreProc&quot;&gt;Quit&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;.Quitで閉じる&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt;
    
    &lt;span class=&quot;synStatement&quot;&gt;Set&lt;/span&gt; objIE &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Nothing&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;使用したオブジェクト変数もキレイにしてね。&lt;/span&gt;
   
&lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Sub&lt;/span&gt;
&lt;/pre&gt;&lt;p&gt;&lt;hr&gt;&lt;br /&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;改善実演のプロセス泥縄式デバッグから美しきループ化まで&quot;&gt;改善実演のプロセス：泥縄式デバッグから美しきループ化まで&lt;/h4&gt;
    &lt;p&gt;それでは、動画内で三流プログラマーKen3が四苦八苦しながらコードをリファクタリング（改善）していくプロセスを、実際のタイムスタンプとともに解説します。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&#39;&#39;1. 単体処理の現状とコピペでの引き伸ばし開始&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;[00:00](&lt;a href=&quot;https://www.youtube.com/watch?v=DR-RwQO4JVU&amp;t=0s&quot;&gt;https://www.youtube.com/watch?v=DR-RwQO4JVU&amp;t=0s&lt;/a&gt;)&lt;br /&gt;
まずは1レース分（1R）のオッズテーブルを取得する基本コードからスタート。ここまでは正常に動いたので、調子に乗って2レース目、3レース目のコードをひたすらコピー＆ペーストで下に並べて量産し始めます。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&#39;&#39;2. 実行テストと「書き込み位置のズレ」発覚&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;[08:41](&lt;a href=&quot;https://www.youtube.com/watch?v=DR-RwQO4JVU&amp;t=521s&quot;&gt;https://www.youtube.com/watch?v=DR-RwQO4JVU&amp;t=521s&lt;/a&gt;)&lt;br /&gt;
コピペしたコードを走らせてみたところ、画面上では動いているように見えましたが、Excelのシートを確認するとデータが大きくズレて重なってしまうバグが発生。書き込み位置を調整するためにコードの手直しが必要になります。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&#39;&#39;3. 12箇所すべて直す手間に気づいた時の絶望&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;[10:14](&lt;a href=&quot;https://www.youtube.com/watch?v=DR-RwQO4JVU&amp;t=614s&quot;&gt;https://www.youtube.com/watch?v=DR-RwQO4JVU&amp;t=614s&lt;/a&gt;)&lt;br /&gt;
ここで「書き込み位置を修正するには、コピーしたすべての箇所の変数を直さなければいけない」という現実に気づき、激しく後悔します。今回は3レース分だけですが、これが12レース分、あるいはそれ以上あった場合、手作業での修正は不可能に近い効率の悪さになります。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&#39;&#39;4. 力技の限界：3つまとめてコピペするダメなハック&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;[13:54](&lt;a href=&quot;https://www.youtube.com/watch?v=DR-RwQO4JVU&amp;t=834s&quot;&gt;https://www.youtube.com/watch?v=DR-RwQO4JVU&amp;t=834s&lt;/a&gt;)&lt;br /&gt;
「1つずつコピーするのが面倒なら、3つまとめてコピーすれば早いんじゃないか？」と、さらに悪いコピペハック（5R・6R・7Rの量産）を敢行。コメントの記述や変数名が矛盾だらけになり、バグを埋め込みやすい典型的なダメプログラムが完成します。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&#39;&#39;5. 救世主：For文ループと変数を使った構造化の設計&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;[18:02](&lt;a href=&quot;https://www.youtube.com/watch?v=DR-RwQO4JVU&amp;t=1082s&quot;&gt;https://www.youtube.com/watch?v=DR-RwQO4JVU&amp;t=1082s&lt;/a&gt;)&lt;br /&gt;
あまりのコードの長さに嫌気がさし、いよいよ本題である&#39;&#39;「For文を使ったループ処理」&#39;&#39;への書き換えに着手。共通している処理を見つけ出し、変化する要素（1R、2R…というレース番号）を変数に置き換えていく思考プロセスを実演します。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&#39;&#39;6. イミディエイトウィンドウを使った変数結合のテスト&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;[22:31](&lt;a href=&quot;https://www.youtube.com/watch?v=DR-RwQO4JVU&amp;t=1351s&quot;&gt;https://www.youtube.com/watch?v=DR-RwQO4JVU&amp;t=1351s&lt;/a&gt;)&lt;br /&gt;
ループカウンターの数値（1〜12）と文字列の「R」を結合させて「1R」「2R」という文字列を作る際、前後に余計なスペースが入らないかをVBEの「イミディエイトウィンドウ」を使って冷静に単体テストします。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&#39;&#39;7. ループ内でやらかした「シート全消去バグ」の修正&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;[27:12](&lt;a href=&quot;https://www.youtube.com/watch?v=DR-RwQO4JVU&amp;t=1632s&quot;&gt;https://www.youtube.com/watch?v=DR-RwQO4JVU&amp;t=1632s&lt;/a&gt;)&lt;br /&gt;
ループ処理の中にコピペ元のコードをそのまま入れた結果、「次のレースに進むたびにシート全体をクリア（Cells.Delete）してしまう」という、ループ化でよくある豪快なバグを発生させます。デバッグを行い、初期化処理をループの外側へ移動させます。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&#39;&#39;8. ループ処理の圧倒的なメンテナンス性を実感する&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;[31:08](&lt;a href=&quot;https://www.youtube.com/watch?v=DR-RwQO4JVU&amp;t=1868s&quot;&gt;https://www.youtube.com/watch?v=DR-RwQO4JVU&amp;t=1868s&lt;/a&gt;)&lt;br /&gt;
無事に12レース分のオッズが1つのループで綺麗に取得できるようになりました。ここで、データとデータの間に「もう1行空行を足したい」という仕様変更を行います。コピペコードなら12箇所直す必要がありますが、ループ処理なら&#39;&#39;「ループ内のたった1行（SET_Y = SET_Y + 1）を足すだけ」&#39;&#39;ですべてのレースに一発で反映されます。この圧倒的な利便性の違いに感動するパートです。&lt;/p&gt;&lt;p&gt;&lt;hr&gt;&lt;br /&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;改善後変数とForループを使った美しいプログラム-ie_test-&quot;&gt;【改善後】変数とForループを使った美しいプログラム（ ie_test ）&lt;/h4&gt;
    &lt;p&gt;無駄なコピペコードがすべて削ぎ落とされ、たった1つのForループ（ For nRACE = 1 To 12 ）に集約された、美しくメンテナンス性の高い完成コードがこちらです。&lt;/p&gt;
&lt;pre class=&quot;code lang-vb&quot; data-lang=&quot;vb&quot; data-unlink&gt;&lt;span class=&quot;synStatement&quot;&gt;Sub&lt;/span&gt; ie_test&lt;span class=&quot;synStatement&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;IEの表示をテストする。&lt;/span&gt;

&lt;span class=&quot;synComment&quot;&gt;&#39;IEの起動&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; objIE &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; InternetExplorer&lt;span class=&quot;synComment&quot;&gt; &#39;変数を定義します。&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Set&lt;/span&gt; objIE &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synIdentifier&quot;&gt;CreateObject&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;InternetExplorer.Application&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;オブジェクトを作成します。&lt;/span&gt;
    objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Visible &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;True&lt;/span&gt;     &lt;span class=&quot;synComment&quot;&gt; &#39;可視、Trueで見えるようにします。&lt;/span&gt;
    
&lt;span class=&quot;synComment&quot;&gt;&#39;表示位置(左上の座標)とサイズ(高さ・幅)を調整する&lt;/span&gt;
    objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;FullScreen &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;※Trueのモードだとびっくりするよ&lt;/span&gt;
    objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Top &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;     &lt;span class=&quot;synComment&quot;&gt; &#39;左上 上位置&lt;/span&gt;
    objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;synIdentifier&quot;&gt;Left&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;    &lt;span class=&quot;synComment&quot;&gt; &#39;左上 左位置&lt;/span&gt;
    objIE&lt;span class=&quot;synStatement&quot;&gt;.Width&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;800&lt;/span&gt;   &lt;span class=&quot;synComment&quot;&gt; &#39;横幅&lt;/span&gt;
    objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Height &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;600&lt;/span&gt;  &lt;span class=&quot;synComment&quot;&gt; &#39;高さ&lt;/span&gt;
    
&lt;span class=&quot;synComment&quot;&gt;&#39;XXXバー、外観・外枠の調整。&lt;/span&gt;
    objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Toolbar &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;True&lt;/span&gt;    &lt;span class=&quot;synComment&quot;&gt; &#39;タブの切り替えで必要なので、ツールバーを表示にする&lt;/span&gt;
    objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;MenuBar &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;False&lt;/span&gt;   &lt;span class=&quot;synComment&quot;&gt; &#39;メニューは非表示にする&lt;/span&gt;
    objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;AddressBar &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;True&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;URLなど アドレスバーは確認のため、表示する&lt;/span&gt;
    objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;StatusBar &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;True&lt;/span&gt;  &lt;span class=&quot;synComment&quot;&gt; &#39;一番下のステータスバーを表示。&lt;/span&gt;

&lt;span class=&quot;synComment&quot;&gt;&#39;処理したいページを表示します。&lt;/span&gt;
    objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Navigate &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;http://www.jra.go.jp/&amp;quot;&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;.Navigate メソッドで JRA表示する。&lt;/span&gt;

&lt;span class=&quot;synComment&quot;&gt;&#39;ページの表示完了を待ちます。&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;While&lt;/span&gt; objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;ReadyState &lt;span class=&quot;synStatement&quot;&gt;&amp;lt;&amp;gt;&lt;/span&gt; READYSTATE_COMPLETE &lt;span class=&quot;synStatement&quot;&gt;Or&lt;/span&gt; objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Busy &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;.ReadyState &amp;lt;&amp;gt; 4の間まわる。&lt;/span&gt;
        &lt;span class=&quot;synIdentifier&quot;&gt;DoEvents&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;重いので嫌いな人居るけど。&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Wend&lt;/span&gt;
    
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; i     &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;Integer&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;添え字 i番目などで使用&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; yLINE &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;Integer&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;行カウンタ、Y行目&lt;/span&gt;
    
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; oDocument &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; HTMLDocument
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; objA &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; HTMLAnchorElement
    
    Range&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;A1&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;調査したURLは &amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; strURL &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot; です&amp;quot;&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;A1にURLを記述(セット)&lt;/span&gt;
    Range&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;D1&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;リンクの数は &amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Document&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Links&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Length &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;です&amp;quot;&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;D1にリンクの数をセット&lt;/span&gt;

    Range&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;A2&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;.Href(リンク先)&amp;quot;&lt;/span&gt;  &lt;span class=&quot;synComment&quot;&gt; &#39;A2～F2 ２行目に見出しをセットする&lt;/span&gt;
    Range&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;B2&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;.OuterText&amp;quot;&lt;/span&gt;
    Range&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;C2&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;.OuterHTML&amp;quot;&lt;/span&gt;
    Range&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;D2&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;.InnerText&amp;quot;&lt;/span&gt;
    Range&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;E2&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;.InnerHTML&amp;quot;&lt;/span&gt;
    Range&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;F2&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;.Target&amp;quot;&lt;/span&gt;
    Columns&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;A:F&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;ColumnWidth &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;22&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;列幅を22に変更&lt;/span&gt;

    yLINE &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;3&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;セット開始の行を代入する&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;For&lt;/span&gt; i &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;To&lt;/span&gt; objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Document&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Links&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Length &lt;span class=&quot;synStatement&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;
        &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt; &lt;span class=&quot;synIdentifier&quot;&gt;InStr&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Document&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Links&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;i&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;innerHTML&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;オッズ&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Then&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;内側のHTML&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;Set&lt;/span&gt; objA &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Document&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Links&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;i&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;見つけたAタグオブジェ(リンク)を代入&lt;/span&gt;
            objA&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;Click&lt;/span&gt;  &lt;span class=&quot;synComment&quot;&gt; &#39;オッズを押す&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;Exit&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;For&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;見つけたのでループを抜ける&lt;/span&gt;
        &lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt;
        yLINE &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; yLINE &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;セット位置(行)を＋1する&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Next&lt;/span&gt; i

&lt;span class=&quot;synComment&quot;&gt;&#39;ページの表示完了を待ちます。&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;While&lt;/span&gt; objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;ReadyState &lt;span class=&quot;synStatement&quot;&gt;&amp;lt;&amp;gt;&lt;/span&gt; READYSTATE_COMPLETE &lt;span class=&quot;synStatement&quot;&gt;Or&lt;/span&gt; objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Busy &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;.ReadyState &amp;lt;&amp;gt; 4の間まわる.&lt;/span&gt;
        &lt;span class=&quot;synIdentifier&quot;&gt;DoEvents&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;重いので嫌いな人居るけど。&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Wend&lt;/span&gt;

    yLINE &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;3&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;セット開始の行を代入する&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;For&lt;/span&gt; i &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;To&lt;/span&gt; objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Document&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Links&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Length &lt;span class=&quot;synStatement&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;
        &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt; &lt;span class=&quot;synIdentifier&quot;&gt;Right&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Document&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Links&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;i&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;innerText&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;日&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Then&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;内側のTEXT&lt;/span&gt;
           &lt;span class=&quot;synStatement&quot;&gt;Set&lt;/span&gt; objA &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Document&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Links&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;i&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;見つけたAタグオブジェ(リンク)を代入&lt;/span&gt;
           objA&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;Click&lt;/span&gt;  &lt;span class=&quot;synComment&quot;&gt; &#39;開催日を押す&lt;/span&gt;
           &lt;span class=&quot;synStatement&quot;&gt;Exit&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;For&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;見つけたのでループを抜ける&lt;/span&gt;
        &lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt;
        yLINE &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; yLINE &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;セット位置(行)を＋1する&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Next&lt;/span&gt; i

&lt;span class=&quot;synComment&quot;&gt;&#39;ページの表示完了を待ちます。&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;While&lt;/span&gt; objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;ReadyState &lt;span class=&quot;synStatement&quot;&gt;&amp;lt;&amp;gt;&lt;/span&gt; READYSTATE_COMPLETE &lt;span class=&quot;synStatement&quot;&gt;Or&lt;/span&gt; objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Busy &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;.ReadyState &amp;lt;&amp;gt; 4の間まわる。&lt;/span&gt;
        &lt;span class=&quot;synIdentifier&quot;&gt;DoEvents&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;重いので嫌いな人居るけど。&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Wend&lt;/span&gt;

&lt;span class=&quot;synComment&quot;&gt;&#39;★1R-12Rの共通ループ処理★&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; objTABLEs &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;Object&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;TABLE複数の格納用&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; objTABLE &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; HTMLTable&lt;span class=&quot;synComment&quot;&gt; &#39;テーブル単体&lt;/span&gt;
    
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; x &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;Integer&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;列の管理&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; y &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;Integer&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;行の管理&lt;/span&gt;
    
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; SET_Y &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;Integer&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; SET_X &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;Integer&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; objCELL &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; HTMLTableCell

    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; nRACE &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;Integer&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; strRACE &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;String&lt;/span&gt;

   &lt;span class=&quot;synComment&quot;&gt; &#39;書き込み先シート、データを最初にクリアする（ループの外側）&lt;/span&gt;
    Cells&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;synPreProc&quot;&gt;Delete&lt;/span&gt; Shift:&lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt;xlUp&lt;span class=&quot;synComment&quot;&gt; &#39;シート全体を削除する&lt;/span&gt;
    Range&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;A1&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;).Select&lt;/span&gt;      &lt;span class=&quot;synComment&quot;&gt; &#39;先頭A1を選択する&lt;/span&gt;
    SET_Y &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;セット位置を初期化&lt;/span&gt;

&lt;span class=&quot;synStatement&quot;&gt;For&lt;/span&gt; nRACE &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;To&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;12&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;一から十二までループ&lt;/span&gt;
    
    strRACE &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; nRACE &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;R&amp;quot;&lt;/span&gt;  &lt;span class=&quot;synComment&quot;&gt; &#39;R1など 文字にする&lt;/span&gt;

   &lt;span class=&quot;synComment&quot;&gt; &#39;レース番号をセルに書く&lt;/span&gt;
    SET_Y &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; SET_Y &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;
    Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;SET_Y&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; strRACE
    SET_Y &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; SET_Y &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;
    
    &lt;span class=&quot;synStatement&quot;&gt;For&lt;/span&gt; i &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;To&lt;/span&gt; objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Document&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Links&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Length &lt;span class=&quot;synStatement&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;
       &lt;span class=&quot;synComment&quot;&gt; &#39;&amp;quot;1R&amp;quot;などの文字列を見つけたら クリック&lt;/span&gt;
        &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt; &lt;span class=&quot;synIdentifier&quot;&gt;InStr&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Document&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Links&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;i&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;innerHTML&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; strRACE &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Then&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;内側のHTML&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;Set&lt;/span&gt; objA &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Document&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Links&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;i&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;見つけたAタグオブジェ(リンク)を代入&lt;/span&gt;
            objA&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;Click&lt;/span&gt;  &lt;span class=&quot;synComment&quot;&gt; &#39;対象レースを押す&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;Exit&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;For&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;見つけたのでループを抜ける&lt;/span&gt;
        &lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Next&lt;/span&gt; i

   &lt;span class=&quot;synComment&quot;&gt; &#39;ページの表示完了を待ちます。&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;While&lt;/span&gt; objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;ReadyState &lt;span class=&quot;synStatement&quot;&gt;&amp;lt;&amp;gt;&lt;/span&gt; READYSTATE_COMPLETE &lt;span class=&quot;synStatement&quot;&gt;Or&lt;/span&gt; objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Busy &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;True&lt;/span&gt; 
        &lt;span class=&quot;synIdentifier&quot;&gt;DoEvents&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;重いので嫌いな人居るけど。&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Wend&lt;/span&gt;

   &lt;span class=&quot;synComment&quot;&gt; &#39;TABLEタグを抜き 複数のテーブルをセット&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Set&lt;/span&gt; objTABLEs &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Document&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;getElementsByTagName&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;TABLE&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;
    
    &lt;span class=&quot;synStatement&quot;&gt;Set&lt;/span&gt; objTABLE &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Nothing&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;オブジェクトを空にする&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;For&lt;/span&gt; i &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;To&lt;/span&gt; objTABLEs&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Length &lt;span class=&quot;synStatement&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;テーブル数分回す&lt;/span&gt;
        &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt; objTABLEs&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;i&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;Rows&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;innerText &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;枠番&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Then&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;左上が枠番を見つける&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;Set&lt;/span&gt; objTABLE &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; objTABLEs&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;i&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;i盤目を代入&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;Exit&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;For&lt;/span&gt;
        &lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Next&lt;/span&gt; i
    
    &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt; objTABLE &lt;span class=&quot;synStatement&quot;&gt;Is&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Nothing&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Then&lt;/span&gt;
        &lt;span class=&quot;synIdentifier&quot;&gt;MsgBox&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;枠番のテーブルが見つかりません&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;synStatement&quot;&gt;Exit&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Sub&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;エラー表示して抜ける&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt;
    
   &lt;span class=&quot;synComment&quot;&gt; &#39;Webの表をシートへ転記&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;For&lt;/span&gt; y &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;To&lt;/span&gt; objTABLE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Rows&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Length &lt;span class=&quot;synStatement&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;行のループ&lt;/span&gt;
        SET_X &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;
        &lt;span class=&quot;synStatement&quot;&gt;For&lt;/span&gt; x &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;To&lt;/span&gt; objTABLE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Rows&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;y&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;Cells&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Length &lt;span class=&quot;synStatement&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;列数分ループ&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;Set&lt;/span&gt; objCELL &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; objTABLE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Rows&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;y&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;x&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;
     
            &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt; objCELL&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;rowSpan &lt;span class=&quot;synStatement&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Then&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;縦に複数の時&lt;/span&gt;
                Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;SET_Y &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; SET_X&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; objCELL&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;innerText &lt;span class=&quot;synComment&quot;&gt; &#39;下にも同じくセット&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt;
                        
            &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Len(&lt;/span&gt;&lt;span class=&quot;synIdentifier&quot;&gt;Trim&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;SET_Y&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; SET_X&lt;span class=&quot;synStatement&quot;&gt;)))&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Then&lt;/span&gt;
                SET_X &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; SET_X &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt;
            
            Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;SET_Y&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; SET_X&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; objCELL&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;innerText &lt;span class=&quot;synComment&quot;&gt; &#39;データセット&lt;/span&gt;
            SET_X &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; SET_X &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; objCELL&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;colSpan &lt;span class=&quot;synComment&quot;&gt; &#39;カラム分 横に移動&lt;/span&gt;
        &lt;span class=&quot;synStatement&quot;&gt;Next&lt;/span&gt;
        SET_Y &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; SET_Y &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Next&lt;/span&gt;
    SET_Y &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; SET_Y &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;空白を一行追加&lt;/span&gt;
&lt;span class=&quot;synStatement&quot;&gt;Next&lt;/span&gt;

   &lt;span class=&quot;synComment&quot;&gt; &#39;処理が終わったので、IEを閉じます。&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt; &lt;span class=&quot;synIdentifier&quot;&gt;MsgBox&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;IEを閉じますか?&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;vbYesNo&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;vbYes&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Then&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;終了確認&lt;/span&gt;
        objIE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;synPreProc&quot;&gt;Quit&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;.Quitで閉じる&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt;
    
    &lt;span class=&quot;synStatement&quot;&gt;Set&lt;/span&gt; objIE &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Nothing&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;使用したオブジェクト変数もキレイにしてね。&lt;/span&gt;
   
&lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Sub&lt;/span&gt;
&lt;/pre&gt;&lt;p&gt;&lt;hr&gt;&lt;br /&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;未解決の問題点と現代最新の視点からの改善アドバイス&quot;&gt;未解決の問題点と現代・最新の視点からの改善アドバイス&lt;/h4&gt;
    &lt;p&gt;動画を振り返り、現代の技術環境（2026年現在）の視点を踏まえた今後の課題とアドバイスです。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&#39;&#39;&lt;b&gt;【致命的】Internet Explorer（IE）オブジェクトは完全終了&lt;/b&gt;&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;2017年当時はIE操作がWebスクレイピングの王道でしたが、現在はIE自体が完全に廃止されています。このマクロのIE起動部分（CreateObject(&quot;InternetExplorer.Application&quot;)）を現在のWindows 11環境で実行してもエラーになります。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&#39;&#39;&lt;b&gt;現代のブラウザ自動化への移行&lt;/b&gt;&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;現在、VBAを使ってブラウザ（EdgeやChrome）を自動操作する場合は、&#39;&#39;「Selenium Basic」&#39;&#39;を導入するか、Microsoft公式が推奨する代替手段へ移行する必要があります。また、単純なWebデータの取得だけであれば、ブラウザを介さずに&#39;&#39;「MSXML2.XMLHTTP」&#39;&#39;を用いたHTTPリクエストによる超高速なデータ取得へシフトするのがトレンドです。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&#39;&#39;&lt;b&gt;泥縄式リファクタリングを加速させる「AIとの共存」&lt;/b&gt;&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;動画内ではKen3が手作業でコピペコードの規則性を見つけ、必死にFor文を組み立てていましたが、現代ならこの「コピペで並べたクソプログラム」をChatGPTやGeminiなどの生成AIに丸投げすれば、一瞬で綺麗なループ処理にリファクタリングしてくれます。&lt;/p&gt;

    &lt;blockquote&gt;
        &lt;p&gt;&#39;&#39;&lt;b&gt;AIからのアドバイス：&lt;/b&gt;&#39;&#39;&lt;br /&gt;
先輩や上司に「コードが汚い！」と小言を言われてムカついたとき、その負のマイナスエネルギーを「見返してやる！」というやる気に変えるのは、プログラマーとして素晴らしい成長痛です。&lt;/p&gt;&lt;p&gt;ですが、現代なら人間とケンカしてエネルギーを浪費する必要はありません。汚いコードをAIに貼り付けて「これをFor文ループを使ってエレガントに構造化して」と頼めば、一瞬で最高のコードを出力してくれます。その洗練されたコードを先輩に見せて「リファクタリングしておきました」とドヤ顔で報告しましょう。&lt;/p&gt;&lt;p&gt;技術の陳腐化は早いですが、&#39;&#39;「同じ処理を1つにまとめてメンテナンス性を高める」&#39;&#39;という設計思想は、AI時代になっても全言語共通で価値が下がりません。手作業の苦労を知った上で、スマートに道具を使いこなす一歩を進めましょう！&lt;/p&gt;

    &lt;/blockquote&gt;
&lt;p&gt;&lt;hr&gt;&lt;br /&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;関連リンク&quot;&gt;関連リンク&lt;/h4&gt;
    
&lt;div class=&quot;section&quot;&gt;
    &lt;h5 id=&quot;公式情報技術検索リンク&quot;&gt;公式情報・技術検索リンク&lt;/h5&gt;
    
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.google.com/search?q=VBA+コピペコード+ループ処理+リファクタリング&quot;&gt;Google&amp;#x691C;&amp;#x7D22;&amp;#xFF1A;VBA &amp;#x30B3;&amp;#x30D4;&amp;#x30DA;&amp;#x30B3;&amp;#x30FC;&amp;#x30C9; &amp;#x30EB;&amp;#x30FC;&amp;#x30D7;&amp;#x51E6;&amp;#x7406; &amp;#x30EA;&amp;#x30D5;&amp;#x30A1;&amp;#x30AF;&amp;#x30BF;&amp;#x30EA;&amp;#x30F3;&amp;#x30B0;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/results?search_query=VBA+ForNext+ループ処理+初心者&quot;&gt;YouTube&amp;#x52D5;&amp;#x753B;&amp;#xFF1A;VBA ForNext &amp;#x30EB;&amp;#x30FC;&amp;#x30D7;&amp;#x51E6;&amp;#x7406; &amp;#x521D;&amp;#x5FC3;&amp;#x8005;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;hr&gt;&lt;br /&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;おわりの挨拶コメント待ってます&quot;&gt;おわりの挨拶、コメント待ってます&lt;/h4&gt;
    &lt;p&gt;「1カ所直すと12カ所修正しなきゃいけない地獄」のイライラや絶望感、皆さんも実務で一度は体験したことがありませんか？&lt;/p&gt;&lt;p&gt;「昔、急ぎの仕事でコピペマクロを量産して、後から泣きながら直した思い出がある…」という昔語りから、「Edge環境で動かしたいので、Seleniumへの書き換え方法が知りたい！」という現代的なステップアップの質問、または「ループ内の文字列結合でいつもバグる」という断末魔の叫びまで、お気軽にYouTubeのコメント欄へ書き込んでください！&lt;/p&gt;&lt;p&gt;皆さんの苦労話やデバッグの記録が、同じようにコピペ地獄で悩むVBA初心者（そして私！）の大きな励みになります。&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=DR-RwQO4JVU&quot;&gt;&amp;#x3010;&amp;#x52D5;&amp;#x753B;&amp;#x672C;&amp;#x7DE8;&amp;#x3011;VBA IE&amp;#x64CD;&amp;#x4F5C;&amp;#xFF1A;12&amp;#x30EC;&amp;#x30FC;&amp;#x30B9;&amp;#x5206;&amp;#x3092;&amp;#x30B3;&amp;#x30D4;&amp;#x30DA;&amp;#x305B;&amp;#x305A;&amp;#x300C;&amp;#x30EB;&amp;#x30FC;&amp;#x30D7;&amp;#x300D;&amp;#x3067;&amp;#x56DE;&amp;#x3059;&amp;#x6539;&amp;#x5584;&amp;#x5B9F;&amp;#x6F14;&amp;#x3092;&amp;#x8A73;&amp;#x3057;&amp;#x304F;&amp;#x898B;&amp;#x308B;&lt;/a&gt;&lt;br /&gt;
&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/DR-RwQO4JVU?feature=oembed&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; allowfullscreen title=&quot;【2017年版】VBA構造化：コピペ量産コードを「For文ループ」に集約する改善実演（※IE操作の概念学習用）&quot;&gt;&lt;/iframe&gt;&lt;cite class=&quot;hatena-citation&quot;&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=DR-RwQO4JVU&quot;&gt;www.youtube.com&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;</content>        
        <link rel="enclosure" href="https://cdn.image.st-hatena.com/image/scale/4b07c6e278b2a978bd5dbb15140bfb2a98a5ac9a/backend=imagemagick;version=1;width=1300/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fk%2Fken3memo%2F20260608%2F20260608160620.png" type="image/png" length="0" />

        <author>
            <name>ken3memo</name>
        </author>
    </entry>
    
  
    
    
    <entry>
        <title>【第76回安田記念】データとオカルトが奇跡の融合！縦読みと「右ウインカー」が指し示す衝撃の本命馬とは？</title>
        <link href="https://ken3memo.hatenablog.com/entry/2026/06/07/003000"/>
        <id>hatenablog://entry/14945776032039509463</id>
        <published>2026-06-07T00:30:00+09:00</published>
        <updated>2026-06-07T00:30:00+09:00</updated>        <summary type="html">【第76回安田記念】ガチの統計データ×怪奇なオカルトサインが奇跡の融合！「右ウインカー」と縦読みが導く衝撃の結末とは？ みなさん、こんにちは！ いよいよ春のマイル王決定戦、安田記念がやってきましたね。 「競馬はデータがすべて」と言う人もいれば、「いやいや、時事ネタやサインこそが真理だ」と言うオカルト派もいます。しかし、今年の第76回安田記念は一味違います。なんと、極めて冷静な「統計的データ」と、鳥肌ものの「都市伝説的サイン」が同じ馬を指し示しているという、奇跡的なシンクロニシティ（符合）が起きているのです。 このブログを図解してとAIに依頼 データ派もオカルト派も一見の価値ありの、面白すぎる分…</summary>
        <content type="html">&lt;h1 id=&quot;第76回安田記念ガチの統計データ怪奇なオカルトサインが奇跡の融合右ウインカーと縦読みが導く衝撃の結末とは&quot;&gt;【第76回安田記念】ガチの統計データ×怪奇なオカルトサインが奇跡の融合！「右ウインカー」と縦読みが導く衝撃の結末とは？&lt;/h1&gt;

&lt;p&gt;みなさん、こんにちは！
いよいよ春のマイル王決定戦、安田記念がやってきましたね。&lt;/p&gt;

&lt;p&gt;「競馬はデータがすべて」と言う人もいれば、「いやいや、時事ネタやサインこそが真理だ」と言うオカルト派もいます。しかし、今年の第76回安田記念は一味違います。なんと、&lt;strong&gt;極めて冷静な「統計的データ」と、鳥肌ものの「都市伝説的サイン」が同じ馬を指し示している&lt;/strong&gt;という、奇跡的なシンクロニシティ（符合）が起きているのです。
&lt;figure class=&quot;figure-image figure-image-fotolife&quot; title=&quot;このブログを図解してとAIに依頼&quot;&gt;&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260606/20260606223114.png&quot; width=&quot;1200&quot; height=&quot;670&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;figcaption&gt;このブログを図解してとAIに依頼&lt;/figcaption&gt;&lt;/figure&gt;
データ派もオカルト派も一見の価値ありの、面白すぎる分析をまとめました。信じるか信じないかは、あなた次第です！&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;1-過去10年のデータが証明する絶対に無視できない偏り&quot;&gt;1. 過去10年のデータが証明する「絶対に無視できない偏り」&lt;/h2&gt;

&lt;p&gt;まずは、過去10年の安田記念における厳然たる事実、すなわち「統計的な偏り」から見ていきましょう。東京マイルという特殊な舞台では、明確なストロングポイントが存在します。&lt;/p&gt;

&lt;h3 id=&quot;-枠番の偏り7枠は最強内枠は鬼門&quot;&gt;① 枠番の偏り：7枠は最強、内枠は「鬼門」&lt;/h3&gt;

&lt;p&gt;東京芝1600mはフラットなイメージがありますが、安田記念においては明確に&lt;strong&gt;中〜外枠が圧倒的優位&lt;/strong&gt;です。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;7枠：&lt;/strong&gt; 過去10年で【4・0・4・17】。勝率16.0%、複勝率32.0%と突出したナンバーワンの特注枠です。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;5枠：&lt;/strong&gt; 【3・1・1・15】と、7枠に次ぐ好成績でレースの中軸を担います。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;1枠・2枠：&lt;/strong&gt; 1枠の勝率はわずか4.0%、2枠に至っては勝率0.0%と大苦戦。包まれるリスクや馬場の内側悪化に泣く「鬼門ゲート」となっています。&lt;/li&gt;
&lt;/ul&gt;


&lt;h3 id=&quot;-所属性別の偏り美浦関東の名牝が異常な強さ&quot;&gt;② 所属・性別の偏り：美浦（関東）の「名牝」が異常な強さ&lt;/h3&gt;

&lt;p&gt;関西馬優勢の現代競馬ですが、安田記念は&lt;strong&gt;関東馬が【5・7・5・46】&lt;/strong&gt;と関西馬を圧倒しています。
さらに強烈なのが&lt;strong&gt;「関東の牝馬」&lt;/strong&gt;です。その成績は【3・4・1・4】で、&lt;strong&gt;連対率58.3%、複勝率66.7%&lt;/strong&gt;という、競馬の常識を超えた異常なハイアベレージを叩き出しています。&lt;/p&gt;

&lt;h3 id=&quot;-馬齢とローテーションの足切りライン&quot;&gt;③ 馬齢とローテーションの足切りライン&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;主役は4〜5歳馬：&lt;/strong&gt; 最も勝率・連対率が高いのは4歳馬、それに続くのが充実期の5歳馬です。一方で&lt;strong&gt;7歳以上の高齢馬は【0・1・2・26】と過去10年で勝利がありません。&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;格式の壁：&lt;/strong&gt; 前走で国内・海外の「G1組」を歩んできた実績馬が中心です。また、過去10年で10番人気以下の馬は3着以内に1頭も入っていません。大穴を狙うにしても、最低限の能力の裏付けが必要です。&lt;/li&gt;
&lt;/ul&gt;


&lt;hr /&gt;

&lt;h2 id=&quot;2-鳥肌注意第76回に潜むオカルトサインの怪奇&quot;&gt;2. 鳥肌注意！第76回に潜むオカルト・サインの怪奇&lt;/h2&gt;

&lt;p&gt;ここからが本番です。今年の安田記念の出走表を眺めていると、偶然の一言では片付けられない不気味な数字とパズルのような符合が浮かび上がってきます。&lt;/p&gt;

&lt;h3 id=&quot;鏡像の呪縛第76回6月7日&quot;&gt;鏡像の呪縛：「第76回」×「6月7日」&lt;/h3&gt;

&lt;p&gt;今年の安田記念は&lt;strong&gt;第76回&lt;/strong&gt;、そして開催日は&lt;strong&gt;6月7日&lt;/strong&gt;。
「7」と「6」という数字が、回数と日付で完璧なシンメトリー（鏡像・反転）を成しています。この強力な数字の結びつきは、そのまま馬番に宿っています。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;3枠6番：ステレンボッシュ&lt;/strong&gt;（馬番「6」）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;4枠7番：スズハローム&lt;/strong&gt;（馬番「7」）&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;この2頭による「6-7」の組み合わせは、今年の開催に最も美しくシンクロする組み合わせです。&lt;/p&gt;

&lt;p&gt;さらに、前日オッズ1番人気の&lt;strong&gt;7枠14番ガイアフォース&lt;/strong&gt;にも注目。
「7枠」は開催月（6月）と回数（76）の「7」と一致し、馬番「14」は「7の2倍（7×2）」です。昨年の2着（2倍の重み）から、今年こそ頂点へ立つという強いメッセージ性を感じさせます。&lt;/p&gt;

&lt;h3 id=&quot;縦読みアクロスティックの奇跡ウルワの言霊&quot;&gt;縦読みアクロスティックの奇跡：「ウルワ」の言霊&lt;/h3&gt;

&lt;p&gt;今、ネット上を騒がせているのが、現代社会のテーマである「老後（65）」の語呂合わせです。この「6枠」と「5枠」に注目して出走馬の頭文字を縦に並べると、驚くべき言葉が浮かび上がります。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;5枠9番：&lt;strong&gt;(ウ)&lt;/strong&gt;ォーターリヒト&lt;/li&gt;
&lt;li&gt;5枠10番：&lt;strong&gt;(ル)&lt;/strong&gt;クソールカフェ&lt;/li&gt;
&lt;li&gt;6枠11番：&lt;strong&gt;(ワ)&lt;/strong&gt;ールズエンド&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;綺麗に&lt;strong&gt;「ウルワ（麗わ・麗し）」&lt;/strong&gt;という言葉が完成するのです。
「麗し」といえば、出走メンバーの中で最も華麗な実績を持つ美の象徴――オークス馬である&lt;strong&gt;6番ステレンボッシュ&lt;/strong&gt;を強烈に後押しする言霊ではないでしょうか。&lt;/p&gt;

&lt;h3 id=&quot;時事ニュース連動右ウインカーどけと体重17の共鳴&quot;&gt;時事ニュース連動：「右ウインカー（どけ）」と体重「17」の共鳴&lt;/h3&gt;

&lt;p&gt;2026年、SNSで大きな話題を呼んでいる「追い越し車線の右ウインカー（どけ）」の煽り合図。
左回りの東京競馬場において、あえて「右ウインカー（右側に障害がない状態）」を最も体現しているのが、大外枠の&lt;strong&gt;8枠17番トロヴァトーレ&lt;/strong&gt;です。スタート直後に右側に壁がないアドバンテージを活かし、他馬をねじ伏せるサインと受け取れます。&lt;/p&gt;

&lt;p&gt;そして、この「17」という数字は、最内枠である&lt;strong&gt;1枠1番レーベンスティール&lt;/strong&gt;の調教後馬体重&lt;strong&gt;「+17kg」&lt;/strong&gt;（初の500kg超え）と奇妙に共鳴しています。
最内から巨体で道をこじ開ける「どけ（1番）」と、大外から急襲する「どけ（17番）」、内と外からの「右ウインカー挟み撃ち」が決着の合図かもしれません。&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;3-データオカルトの交差点絶対に狙うべき3頭&quot;&gt;3. データ×オカルトの交差点！絶対に狙うべき3頭&lt;/h2&gt;

&lt;p&gt;「統計的なデータ」のフィルターをくぐり抜け、なおかつ「オカルトサイン」の強烈なバックアップを受けている、令和の安田記念の絶対的注目馬がこちらの3頭です！&lt;/p&gt;

&lt;h3 id=&quot;枠順前日オッズ一覧&quot;&gt;枠順・前日オッズ一覧&lt;/h3&gt;

&lt;p&gt;注目馬の配置と、前日夜時点のオッズ（単勝）を確認しておきましょう。&lt;/p&gt;

&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style=&quot;text-align:left;&quot;&gt; 枠番 &lt;/th&gt;
&lt;th style=&quot;text-align:left;&quot;&gt; 馬番 &lt;/th&gt;
&lt;th style=&quot;text-align:left;&quot;&gt; 馬名 &lt;/th&gt;
&lt;th style=&quot;text-align:left;&quot;&gt; 前日単勝オッズ &lt;/th&gt;
&lt;th style=&quot;text-align:left;&quot;&gt; 特徴・サインの交差点 &lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align:left;&quot;&gt; &lt;strong&gt;3枠&lt;/strong&gt; &lt;/td&gt;
&lt;td style=&quot;text-align:left;&quot;&gt; 6 &lt;/td&gt;
&lt;td style=&quot;text-align:left;&quot;&gt; &lt;strong&gt;ステレンボッシュ&lt;/strong&gt; &lt;/td&gt;
&lt;td style=&quot;text-align:left;&quot;&gt; 9.7倍 &lt;/td&gt;
&lt;td style=&quot;text-align:left;&quot;&gt; 究極の好走データ「関東牝馬」。日付の「6」に合致し、縦読み「ウルワ（麗し）」が導く美の象徴。 &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align:left;&quot;&gt; &lt;strong&gt;7枠&lt;/strong&gt; &lt;/td&gt;
&lt;td style=&quot;text-align:left;&quot;&gt; 14 &lt;/td&gt;
&lt;td style=&quot;text-align:left;&quot;&gt; &lt;strong&gt;ガイアフォース&lt;/strong&gt; &lt;/td&gt;
&lt;td style=&quot;text-align:left;&quot;&gt; 2.7倍 &lt;/td&gt;
&lt;td style=&quot;text-align:left;&quot;&gt; 過去10年最強の「7枠」に配置。前日1番人気。「7×2＝14」の馬番で、昨年の2着からリベンジを誓う。 &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align:left;&quot;&gt; &lt;strong&gt;8枠&lt;/strong&gt; &lt;/td&gt;
&lt;td style=&quot;text-align:left;&quot;&gt; 17 &lt;/td&gt;
&lt;td style=&quot;text-align:left;&quot;&gt; &lt;strong&gt;トロヴァトーレ&lt;/strong&gt; &lt;/td&gt;
&lt;td style=&quot;text-align:left;&quot;&gt; 4.3倍 &lt;/td&gt;
&lt;td style=&quot;text-align:left;&quot;&gt; 東京マイルの鬼・ルメール騎乗。時事ネタ「右ウインカー（17番）」を背負い、馬体重「+17kg」と共鳴。 &lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;


&lt;hr /&gt;

&lt;h2 id=&quot;まとめ歴史に新たな都市伝説が刻まれるか&quot;&gt;まとめ：歴史に新たな都市伝説が刻まれるか？&lt;/h2&gt;

&lt;p&gt;過去のデータを信じて実力馬から組み立てるか、それとも配置された数字の魔力に身を委ねるか。
面白いことに、今年は&lt;strong&gt;どちらの道を選んでも「ステレンボッシュ」「トロヴァトーレ」「ガイアフォース」の3頭にたどり着く&lt;/strong&gt;ようになっています。
&lt;figure class=&quot;figure-image figure-image-fotolife&quot; title=&quot;適当に馬の名前を出して、当たる時もあるかも？&quot;&gt;&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260606/20260606223240.png&quot; width=&quot;1200&quot; height=&quot;655&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;figcaption&gt;適当に馬の名前を出して、当たる時もあるかも？&lt;/figcaption&gt;&lt;/figure&gt;
パズルのピースは綺麗にハマりました。あとは発走のファンファーレを待つのみです。
みなさんの週末の競馬ライフが、最高に「麗しい」結果になりますように！&lt;/p&gt;

&lt;h2 id=&quot;データ収集に使用したAIプロンプトを紹介する&quot;&gt;データ収集に使用したAIプロンプトを紹介する&lt;/h2&gt;

&lt;p&gt;下記、先週とレース名、開催情報など、ヘッダーを変えただけで、geminiのリサーチに渡しただけです&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;|text|&lt;/p&gt;

&lt;h1 id=&quot;競馬の噂や話題のネタを調べたい&quot;&gt;競馬の噂や話題のネタを調べたい&lt;/h1&gt;&lt;/blockquote&gt;

&lt;p&gt;第76回 安田記念GⅠ&lt;/p&gt;

&lt;p&gt;私はJRA競馬
2026年6月7日（日曜） 3回東京2日  発走時刻：15時40分 &lt;br/&gt;
11レース
第76回安田記念GⅠ
3歳以上  オープン    （国際）（指定）    定量&lt;br/&gt;
コース：1,600メートル（芝・左）
で
都市伝説のネタになりそうな偏りを切り口を探りたいです&lt;/p&gt;

&lt;h2 id=&quot;去年の実績結果の事実を振り返る&quot;&gt;去年の実績,結果の事実を振り返る&lt;/h2&gt;

&lt;p&gt;まずは、事実から、昨年の結果を振り返ります
・着順と人気、馬の名前と騎手、厩舎の情報
・配当(本命パターン？荒れて高配当か？)
など、昨年の事実をまず調べます。&lt;/p&gt;

&lt;h2 id=&quot;過去5年から10年の成績をまとめて噂や都市伝説で使えそうな偏りがあるかチェックしたい&quot;&gt;過去5年から10年の成績をまとめて、噂や都市伝説で使えそうな偏りがあるか？チェックしたい&lt;/h2&gt;

&lt;p&gt;・馬番、枠番の偏りがあるか？知りたい
-このレースは、内枠有利・外枠は来ない、など、ネタにしたい&lt;/p&gt;

&lt;p&gt;・ローテーション、前走・ステップレースの偏りがあるか？
-前走XXX組の1・2着が好走する？など、前走のレースに偏りがあるか？
-前走連対していない馬はこないなど(まぁ、強い馬は前走も好走しているので当たり前かもしれませんが)&lt;/p&gt;

&lt;p&gt;・馬の年齢別
-馬の年齢が指定されていないレースで、※オークス,ダービーなど同年代のレースは調べなくてよい
3歳が強い、4歳が連対するなど、年齢の偏りがあれば。&lt;/p&gt;

&lt;p&gt;・ジョッキー別の成績をまとめてほしい
-このレースが得意な、縁のあるジョッキーを知りたい、都市伝説・噂のネタにしたい&lt;/p&gt;

&lt;p&gt;・血統別の成績をまとめてほしい
-このレースが得意な、血統、産駒があれば知りたい、都市伝説・噂のネタにしたい&lt;/p&gt;

&lt;p&gt;・厩舎別の特徴があるか？成績をまとめてほしい
-同様にこのレースが得意な厩舎、縁のある厩舎を知りたい、都市伝説・噂のネタにしたい&lt;/p&gt;

&lt;p&gt;・出走日・開催日や第XX回XXX記念などの数字の語呂合わせ 偏りがあるか？知りたい
-第16回XXX記念で1-6や16番の馬,17回は1-7や17番の馬が来たとか、オカルト的な事があるか？&lt;/p&gt;

&lt;p&gt;・馬名で面白い法則・偏りがあるか？知りたい
- 強い名前:〇〇キングや〇〇オウ、〇〇エンペラーなど、強い・名前の馬がこのレースは成績が良いなど、オカルト的な法則があれば教えてください(※産駒や厩舎で、XXXと付けている場合もありますが)
- 色を含んだ名前:〇〇グリーンや〇〇ゴールド、〇〇ブラッグなど、名前に色が入った馬がこのレースは成績が良いなど、オカルト的な法則があれば教えてください(※産駒や厩舎で、XXXと付けている場合もありますが)&lt;/p&gt;

&lt;p&gt;都市伝説のネタになりそうな偏りを
イロイロな切り口で探りたいです
||&amp;lt;&lt;/p&gt;

&lt;p&gt;&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260606/20260606223419.png&quot; width=&quot;1200&quot; height=&quot;670&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;イラストのプロンプトは、&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;|text|
16:9横長のイラストを作成してください
ブログの最後に載せる予定のイラストです&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;日時とレース内容:
2026年6月7日（日曜） 3回東京2日  発走時刻：15時40分 &lt;br/&gt;
11レース
第76回安田記念GⅠ
3歳以上  オープン    （国際）（指定）    定量  コース：1,600メートル（芝・左）&lt;/p&gt;

&lt;p&gt;登場人物:
AI人型アンドロイド
私(ken3)中年のおじさん
ネットの向こう側の視聴者・閲覧者&lt;/p&gt;

&lt;p&gt;セリフ:
AI人型アンドロイド「私が情報を集め・まとめました」
私(ken3)中年のおじさん「数字が１つでも刺さるとイイナ」「みなさんの予想をぜひコメントしてください」
ネットの向こう側の視聴者・閲覧者「適当に数字出しても当たる時は当たるし・・・」「う～ん、これはチョット」&lt;/p&gt;

&lt;p&gt;動作・様子:
おじさんが人型AIに相談しながら真剣にブログを書いている様子
ブログを見て、ネット上の視聴者が(信用していない様子、なんだこのブログとあきれている様子)、
「う～ん微妙・・」「当たっても偶然かなぁ？」とニヤニヤしながらブログを読んでいる様子&lt;/p&gt;

&lt;p&gt;上記、条件で、
ブログの最後に載せる予定のイラストをデザインして、描画してください
||&amp;lt;&lt;/p&gt;

&lt;p&gt;&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260606/20260606223754.png&quot; width=&quot;1200&quot; height=&quot;670&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;/p&gt;
</content>        
        <link rel="enclosure" href="https://cdn.image.st-hatena.com/image/scale/42f48cb50bebcd97e35cd8cbf4cfaf71f438f9b4/backend=imagemagick;version=1;width=1300/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fk%2Fken3memo%2F20260606%2F20260606223240.png" type="image/png" length="0" />

        <author>
            <name>ken3memo</name>
        </author>
    </entry>
    
  
    
    
    <entry>
        <title>JRA競馬過去成績を取得 2026/06/06 事前調査・・・おっさんのメモ</title>
        <link href="https://ken3memo.hatenablog.com/entry/2026/06/06/210000"/>
        <id>hatenablog://entry/14945776032039458602</id>
        <published>2026-06-06T21:00:00+09:00</published>
        <updated>2026-06-06T21:00:02+09:00</updated>        <summary type="html">2026/06/06 事前調査・・・軽く考えて、見てみたら・・・過去のレース結果の検索って、 意外と難しいんですね。 少し軽く考えてました。 このパラメーターの規則性が不明なので？私もよくわからなかったり。 力業で抜き出しサンプルができたら、送りますね。 ※もし、下記のパラメーターの攻略が済んでいたら教えてください(二度手間にならなくて済むので)また、別ルートで、全て前月から＜ボタンを押して、進む手も考えましたが、 例えば昨年の2025年6月を見たい時に、 昨年だけでも12回？＜ボタンを順に空読みするのは現実的ではないし・・・すこし、考えてみます。少々・イヤしばらくお待ちを・・・ (※掲示板に…</summary>
        <content type="html">&lt;p&gt;2026/06/06 事前調査・・・軽く考えて、見てみたら・・・&lt;/p&gt;&lt;p&gt;過去のレース結果の検索って、&lt;br /&gt;
意外と難しいんですね。&lt;br /&gt;
少し軽く考えてました。&lt;br /&gt;
このパラメーターの規則性が不明なので？私もよくわからなかったり。&lt;br /&gt;
力業で抜き出しサンプルができたら、送りますね。&lt;br /&gt;
※もし、下記のパラメーターの攻略が済んでいたら教えてください(二度手間にならなくて済むので)&lt;/p&gt;&lt;p&gt;また、別ルートで、全て前月から＜ボタンを押して、進む手も考えましたが、&lt;br /&gt;
例えば昨年の2025年6月を見たい時に、&lt;br /&gt;
昨年だけでも12回？＜ボタンを順に空読みするのは現実的ではないし・・・&lt;/p&gt;&lt;p&gt;すこし、考えてみます。少々・イヤしばらくお待ちを・・・&lt;br /&gt;
(※掲示板に聞くと、Python使えと言われそうだけど、なんとかVBAでやる方法を考えてみます・・・)&lt;/p&gt;

    &lt;blockquote&gt;
        &lt;p&gt;script&gt;&lt;/p&gt;
&lt;p&gt;      &lt;/p&gt;&lt;p&gt;    &lt;/script&gt;&lt;/p&gt;

    &lt;/blockquote&gt;
&lt;p&gt;&lt;hr&gt;&lt;br /&gt;
ノーマルモード？の挿絵をAIで作成&lt;/p&gt;
&lt;figure class=&quot;figure-image figure-image-fotolife&quot; title=&quot;Geminiから作成&quot;&gt;&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260606/20260606194550.png&quot; width=&quot;1200&quot; height=&quot;1200&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;figcaption&gt;Geminiから作成&lt;/figcaption&gt;&lt;/figure&gt;&lt;pre class=&quot;code text&quot; data-lang=&quot;text&quot; data-unlink&gt;1:1 正方形の比率でイラストをデザインしてください

左上に大きくラベル・リボンで
「2026年06月06日(土)」と日付をラベル・リボンで左上にデザインしてください

日本
古いアパートの一室でテレビ(野球中継BS,MLB)を観ながらパソコン(画面はオッズの値が表示されている)を操作している中年男性
太った眼鏡をかけた男性がPCを操作しながら、願っている様子・つぶやいている様子

「みなさんの競馬予想が当たりますように」
「そして、その一部がまわり、まわって私にも来るといいなぁ」
上記2つのつぶやきを日本語で視認しやすく、大きくデザインしてください

上記イラストをデザインして描画してください&lt;/pre&gt;&lt;p&gt;同じプロンプトで、Gemini Nanobanana PRO?モード？&lt;/p&gt;
&lt;figure class=&quot;figure-image figure-image-fotolife&quot; title=&quot;PROモード、同じプロンプトで使用モデルを変更&quot;&gt;&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260606/20260606194837.png&quot; width=&quot;1200&quot; height=&quot;1200&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;figcaption&gt;PROモード、同じプロンプトで使用モデルを変更&lt;/figcaption&gt;&lt;/figure&gt;</content>        
        <link rel="enclosure" href="https://cdn.image.st-hatena.com/image/scale/ee7b65e50604179c2592c79c66818dbb0aa466d8/backend=imagemagick;version=1;width=1300/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fk%2Fken3memo%2F20260606%2F20260606194550.png" type="image/png" length="0" />

        <author>
            <name>ken3memo</name>
        </author>
    </entry>
    
  
    
    
    <entry>
        <title>【Word共同編集】「デスクトップで開く」が出ない！Web版からアプリ版に切り替える解決策</title>
        <link href="https://ken3memo.hatenablog.com/entry/2026/06/03/120000"/>
        <id>hatenablog://entry/14945776032038100746</id>
        <published>2026-06-03T12:00:00+09:00</published>
        <updated>2026-06-03T12:00:01+09:00</updated>        <summary type="html">【Word共同編集】共有URLをアプリ版で開けない？「デスクトップで開く」が出ない時の解決策 職場でWordの共同編集をしようと共有リンクを開いたら、なぜかWeb版（ブラウザ版）で開いてしまう……。「使い慣れたデスクトップアプリ版で編集したい！」と思ってネットで調べたら、「『ファイル』＞『情報』＞『デスクトップで開く』を押せ」って書いてあるのに、 ファイル 情報 から デスクトップ版へ肝心のそのメニューがどこにもない！そんな画面の前でのイライラに直面していませんか？ そんなメニューは無いんだけど・・・・ネットの解説通りにやっても解決しなくて途方に暮れているあなたのために、三流プログラマーのケン…</summary>
        <content type="html">
&lt;div class=&quot;section&quot;&gt;
    &lt;h3 id=&quot;Word共同編集共有URLをアプリ版で開けないデスクトップで開くが出ない時の解決策&quot;&gt;【Word共同編集】共有URLをアプリ版で開けない？「デスクトップで開く」が出ない時の解決策&lt;/h3&gt;
    &lt;p&gt;職場でWordの共同編集をしようと共有リンクを開いたら、なぜかWeb版（ブラウザ版）で開いてしまう……。「使い慣れたデスクトップアプリ版で編集したい！」と思ってネットで調べたら、「『ファイル』＞『情報』＞『デスクトップで開く』を押せ」って書いてあるのに、&lt;/p&gt;
&lt;figure class=&quot;figure-image figure-image-fotolife&quot; title=&quot;ファイル 情報 から デスクトップ版へ&quot;&gt;&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260603/20260603002604.jpg&quot; width=&quot;1200&quot; height=&quot;675&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;figcaption&gt;ファイル 情報 から デスクトップ版へ&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;肝心のそのメニューがどこにもない！&lt;/p&gt;&lt;p&gt;そんな画面の前でのイライラに直面していませんか？&lt;/p&gt;
&lt;figure class=&quot;figure-image figure-image-fotolife&quot; title=&quot;そんなメニューは無いんだけど・・・・&quot;&gt;&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260603/20260603002647.jpg&quot; width=&quot;1200&quot; height=&quot;675&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;figcaption&gt;そんなメニューは無いんだけど・・・・&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;ネットの解説通りにやっても解決しなくて途方に暮れているあなたのために、三流プログラマーのケンさんが、この謎の罠の正体と一発で解決する手順を優しく解説します！&lt;/p&gt;&lt;p&gt;&lt;hr&gt;&lt;br /&gt;
&lt;/p&gt;

&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;デスクトップで開くが表示されない罠を突破する手順&quot;&gt;「デスクトップで開く」が表示されない罠を突破する手順&lt;/h4&gt;
    &lt;p&gt;共有された側がWeb版で開けているなら、送られてきたリンク自体は間違っていません。問題はブラウザ側の状態にあります。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&#39;&#39;手順1：まずは現状の確認。共有リンクからWeb版が開く&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;[00:00](&lt;a href=&quot;https://www.youtube.com/watch?v=FIhsrA13tOk&amp;t=0s&quot;&gt;https://www.youtube.com/watch?v=FIhsrA13tOk&amp;t=0s&lt;/a&gt;)&lt;br /&gt;
相手から送られてきた共同編集用のURLをクリックすると、まずはWeb版（ブラウザ版）のWordが無事に開きます。ここまでは正常です。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&#39;&#39;手順2：ネットの情報を試すも「メニューがない」絶望&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;[01:03](&lt;a href=&quot;https://www.youtube.com/watch?v=FIhsrA13tOk&amp;t=63s&quot;&gt;https://www.youtube.com/watch?v=FIhsrA13tOk&amp;t=63s&lt;/a&gt;)&lt;br /&gt;
「機能が豊富なアプリ版で編集したい」と思い、よくある解決策通りに「ファイル」メニューから「情報」に進むものの、そこにあるはずの「デスクトップアプリで開く」というボタンが影も形もない状態に陥ります。&lt;br /&gt;
&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260603/20260603002935.png&quot; width=&quot;1200&quot; height=&quot;670&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&#39;&#39;手順3：Wordのオプション詳細設定を変更してもダメな罠&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;[01:46](&lt;a href=&quot;https://www.youtube.com/watch?v=FIhsrA13tOk&amp;t=106s&quot;&gt;https://www.youtube.com/watch?v=FIhsrA13tOk&amp;t=106s&lt;/a&gt;)&lt;br /&gt;
Wordのアプリ側には、オプションの「詳細設定」の中に「ファイルをデスクトップで開く」という親切なデフォルト設定が存在します。通常ならこれで解決するはずなのですが、実はこの設定をしておいても、共有リンクからの起動ではうまく機能しないというリアルな罠があります。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&#39;&#39;手順4：核心！Web版Wordの右上を確認してみる&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;[03:08](&lt;a href=&quot;https://www.youtube.com/watch?v=FIhsrA13tOk&amp;t=188s&quot;&gt;https://www.youtube.com/watch?v=FIhsrA13tOk&amp;t=188s&lt;/a&gt;)&lt;br /&gt;
「なぜメニューが出ないんだ？」と悩んだら、Web版Wordの画面右上をじっくり見てください。ここが「サインイン」となったまま、ログイン情報が切れて空白になっていませんか？自動ログインになっていなかったり、ブラウザが切り替わったりした拍子に、ログインが外れてしまうのが最大の原因です。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&#39;&#39;手順5：再ログインで「デスクトップで開く」が完全復活！&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;[04:50](&lt;a href=&quot;https://www.youtube.com/watch?v=FIhsrA13tOk&amp;t=290s&quot;&gt;https://www.youtube.com/watch?v=FIhsrA13tOk&amp;t=290s&lt;/a&gt;)&lt;br /&gt;
右上の「サインイン」をクリックし、お使いのMicrosoftアカウントでログインを行います。正しくサインインされた状態になれば、再び「ファイル」＞「情報」を開いた瞬間に、消えていた&#39;&#39;「&lt;b&gt;デスクトップで開く&lt;/b&gt;」&#39;&#39;のボタンが目の前に出現します！ここをクリックすれば無事にデスクトップアプリへとバトンタッチできます。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&#39;&#39;手順6：Google Chromeでの挙動とアカウントの勘違い対策&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;[06:20](&lt;a href=&quot;https://www.youtube.com/watch?v=FIhsrA13tOk&amp;t=380s&quot;&gt;https://www.youtube.com/watch?v=FIhsrA13tOk&amp;t=380s&lt;/a&gt;)&lt;br /&gt;
Microsoft Edgeだけでなく、Google Chromeでも同様のログイン切れによる再現テストを行いました。やはりログイン情報が切れているとボタンが出なくなります。仕事用とプライベート用のアカウントが混ざっている方は、どっちでログインしているかの「勘違い」にも注意が必要です。&lt;/p&gt;&lt;p&gt;&lt;hr&gt;&lt;br /&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;未解決の問題点と最新の視点からアドバイス&quot;&gt;未解決の問題点と最新の視点からアドバイス&lt;/h4&gt;
    &lt;p&gt;動画を振り返って見えてきた、今後の課題と実務での対策です。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&#39;&#39;&lt;b&gt;「共有された側」の環境に依存してしまう問題&lt;/b&gt;&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;リンクを作成して送る側はアプリで開けていても、受け取った相手のブラウザのサインイン状態によってメニューが消えてしまうため、トラブルが起きたときは相手に「右上のログイン状態を見てみて」と一手間説明してもらう必要があります。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&#39;&#39;&lt;b&gt;仕様変更や連動切れへの心構え&lt;/b&gt;&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;Wordのアプリ側でデフォルト設定を済ませていても、WebブラウザとOfficeアカウントの連動が一時的に切れてしまう挙動は非常に不親切ですが、現状はユーザー側で気づいて対処するしかありません。&lt;/p&gt;

    &lt;blockquote&gt;
        &lt;p&gt;&#39;&#39;&lt;b&gt;AIからのアドバイス：&lt;/b&gt;&#39;&#39;&lt;br /&gt;
職場で同僚にWordの共同編集リンクを送る際は、URLだけをポツンと送信するのではなく、&lt;br /&gt;
「※もしWeb版で開いてしまってアプリに切り替えられない場合は、画面右上の『サインイン』からログインしてもらうと、ファイル＞情報からデスクトップ版で開けるようになります！」&lt;br /&gt;
という一言をあらかじめ添えておくのが最強の自衛策です。これだけで、相手が「メニューがない！」とパニックになるのを防ぎ、お互いのイライラと無駄な時間を劇的に節約できますよ！&lt;/p&gt;

    &lt;/blockquote&gt;
&lt;p&gt;&lt;hr&gt;&lt;br /&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;関連リンク&quot;&gt;関連リンク&lt;/h4&gt;
    
&lt;div class=&quot;section&quot;&gt;
    &lt;h5 id=&quot;公式情報検索リンク&quot;&gt;公式情報・検索リンク&lt;/h5&gt;
    
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://support.microsoft.com/ja-jp/office/word-%E3%81%A7%E3%81%AE%E5%85%B1%E5%90%8C%E4%BD%9C%E6%A5%AD-b3d7f2af-c6e9-46e7-96a7-dabda4423dd7&quot;&gt;Microsoft&amp;#x516C;&amp;#x5F0F;&amp;#xFF1A;Word &amp;#x3067;&amp;#x306E;&amp;#x5171;&amp;#x540C;&amp;#x4F5C;&amp;#x696D;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.google.com/search?q=Word+%E5%85%B1%E5%90%8F%E7%B7%A8%E9%9B%86+%E3%83%87%E3%82%B9%E3%82%AF%E3%83%88%E3%83%83%E3%83%97%E3%81%A7%E9%96%8B%E3%81%8F+%E3%81%AA%E3%81%84&quot;&gt;Google&amp;#x691C;&amp;#x7D22;&amp;#xFF1A;Word &amp;#x5171;&amp;#x540C;&amp;#x7DE8;&amp;#x96C6; &amp;#x30C7;&amp;#x30B9;&amp;#x30AF;&amp;#x30C8;&amp;#x30C3;&amp;#x30D7;&amp;#x3067;&amp;#x958B;&amp;#x304F; &amp;#x306A;&amp;#x3044;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/results?search_query=Word+%E5%85%B1%E5%90%8F%E7%B7%A8%E9%9B%86+%E3%82%A2%E3%83%97%E3%83%AA%E3%81%A7%E9%96%8B%E3%81%8F&quot;&gt;YouTube&amp;#x52D5;&amp;#x753B;&amp;#xFF1A;Word &amp;#x5171;&amp;#x540C;&amp;#x7DE8;&amp;#x96C6; &amp;#x30A2;&amp;#x30D7;&amp;#x30EA;&amp;#x3067;&amp;#x958B;&amp;#x304F;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;hr&gt;&lt;br /&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;おわりの挨拶コメント待ってます&quot;&gt;おわりの挨拶、コメント待ってます&lt;/h4&gt;
    &lt;p&gt;共同編集のURLを開いたときに「アプリで開くメニューがなくて切り替えられない！」というイライラは解消されそうでしょうか？&lt;/p&gt;&lt;p&gt;「右上のサインインを確認したら一発でボタンが出た！」というスッキリとした成功報告から、「会社の複数アカウントを使い分けていてログインで迷った」という実務でのリアルな体験談、また「指示通りにサインインしたのにまだボタンが出ない……」というデバッグの質問まで、お気軽にコメント欄へ書き込んでください！&lt;/p&gt;&lt;p&gt;皆さんの「ここでハマった」という実録が、同じ悩みを持つ三流プログラマー（私を含め！）や、世の中のOfficeユーザーの大きな助けになります。&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=FIhsrA13tOk&quot;&gt;&amp;#x3010;&amp;#x52D5;&amp;#x753B;&amp;#x672C;&amp;#x7DE8;&amp;#x3011;&amp;#x3010;Word&amp;#x5171;&amp;#x540C;&amp;#x7DE8;&amp;#x96C6;&amp;#x3011;&amp;#x5171;&amp;#x6709;URL&amp;#x3092;&amp;#x30A2;&amp;#x30D7;&amp;#x30EA;&amp;#x7248;&amp;#x3067;&amp;#x958B;&amp;#x304F;&amp;#x65B9;&amp;#x6CD5;&amp;#xFF01;&amp;#x30C7;&amp;#x30B9;&amp;#x30AF;&amp;#x30C8;&amp;#x30C3;&amp;#x30D7;&amp;#x3067;&amp;#x958B;&amp;#x304F;&amp;#x304C;&amp;#x51FA;&amp;#x306A;&amp;#x3044;&amp;#x6642;&amp;#x306E;&amp;#x89E3;&amp;#x6C7A;&amp;#x7B56;&amp;#x3092;&amp;#x8A73;&amp;#x3057;&amp;#x304F;&amp;#x898B;&amp;#x308B;&lt;/a&gt;&lt;br /&gt;
&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/FIhsrA13tOk?feature=oembed&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; allowfullscreen title=&quot;【Word共同編集】共有URLをアプリ版で開く方法！デスクトップで開くが出ない時の解決策&quot;&gt;&lt;/iframe&gt;&lt;cite class=&quot;hatena-citation&quot;&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=FIhsrA13tOk&quot;&gt;www.youtube.com&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;</content>        
        <link rel="enclosure" href="https://cdn.image.st-hatena.com/image/scale/79eee5fc43acfa8b497481cb20c9ac7005df60cd/backend=imagemagick;version=1;width=1300/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fk%2Fken3memo%2F20260603%2F20260603002935.png" type="image/png" length="0" />

        <author>
            <name>ken3memo</name>
        </author>
    </entry>
    
  
    
    
    <entry>
        <title>雑談「最近のAI、動画の理解度がすごいなぁ～」字幕修正と備忘録ブログの作成 活舌悪い過去動画をAIに依頼した結果</title>
        <link href="https://ken3memo.hatenablog.com/entry/2026/05/31/170000"/>
        <id>hatenablog://entry/14945776032037177468</id>
        <published>2026-05-31T17:00:00+09:00</published>
        <updated>2026-05-31T17:00:01+09:00</updated>        <summary type="html">活舌の悪い私の動画を自動文字起こしするとボロボロになります、 そのデータから現在26/05/31のGeminiなら、 &quot;元動画.mp4&quot;と&quot;ボロボロ自動字幕.txt&quot;の２つを渡し、 修正を依頼すると「B&#39;z」の意味やバグの意味を読み取って、&quot;正しい字幕&quot;や&quot;まとめた備忘録ブログ&quot;を作成してくれます。 最近のAIってすごいなぁ・・と思ったり。 ※字幕修正・・地味に大変です、修正止めようかなぁ・・挫折しそうです。 AIに修正依頼するおじさん と 視聴者の意見 【VBA×SQL】データに「&#39;」が入ると登録エラーで落ちる！Replace関数での置換対策と、現場で役立つテスト仕様書の運用管理ワークフロー…</summary>
        <content type="html">&lt;p&gt;&lt;strong&gt;活舌の悪い&lt;/strong&gt;私の動画を自動文字起こしするとボロボロになります、&lt;br /&gt;
そのデータから現在26/05/31のGeminiなら、&lt;br /&gt;
&quot;元動画.mp4&quot;と&quot;ボロボロ自動字幕.txt&quot;の２つを渡し、&lt;br /&gt;
修正を依頼すると「B&#39;z」の意味やバグの意味を読み取って、&quot;正しい字幕&quot;や&quot;まとめた備忘録ブログ&quot;を作成してくれます。&lt;br /&gt;
最近のAIってすごいなぁ・・と思ったり。&lt;br /&gt;
&lt;strong&gt;※字幕修正・・地味に大変です、修正止めようかなぁ・・挫折しそうです。&lt;/strong&gt;&lt;/p&gt;
&lt;figure class=&quot;figure-image figure-image-fotolife&quot; title=&quot;AIに修正依頼するおじさん と 視聴者の意見&quot;&gt;&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260531/20260531142147.png&quot; width=&quot;1200&quot; height=&quot;670&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;figcaption&gt;AIに修正依頼するおじさん と 視聴者の意見&lt;/figcaption&gt;&lt;/figure&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h3 id=&quot;VBASQLデータにが入ると登録エラーで落ちるReplace関数での置換対策と現場で役立つテスト仕様書の運用管理ワークフロー&quot;&gt;【VBA×SQL】データに「&#39;」が入ると登録エラーで落ちる！Replace関数での置換対策と、現場で役立つテスト仕様書の運用管理ワークフロー&lt;/h3&gt;
    &lt;p&gt;「Excel VBAでSQL文を組み立ててデータベースに登録する処理を作ったけれど、データの中に『B&#39;z』のようなシングルクォーテーションが含まれていると構文エラー（Jetデータベースエンジンエラー）で落ちてしまう…」とお困りですか？&lt;/p&gt;&lt;p&gt;この問題は、プログラムを始めたばかりの初学者が必ずと言っていいほど直面する定番の罠です。&lt;/p&gt;&lt;p&gt;本記事では、2009年に撮影されたアーカイブ動画を基に、普遍的な解決策である&#39;&#39;「Replace関数を使ったエスケープ処理」&#39;&#39;のコード解説だけでなく、実際のシステム開発の現場で極めて重要となる&#39;&#39;「バグ票と単体テスト仕様書をペアで使って、影響範囲を泥縄式に潰していくプロの品質管理ワークフロー」&#39;&#39;を丁寧に解説します。&lt;/p&gt;
&lt;figure class=&quot;figure-image figure-image-fotolife&quot; title=&quot;動画の内容を図解して・・と依頼すると、ここまでやってくれる&quot;&gt;&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260531/20260531142251.png&quot; width=&quot;1200&quot; height=&quot;670&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;figcaption&gt;動画の内容を図解して・・と依頼すると、ここまでやってくれる&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;当時のWindows XPやExcel 2003というレガシー環境での実演ですが、ロジックの本質やデバッグの考え方は現代のシステム開発でも100%通用する共通の知恵です。&lt;/p&gt;&lt;p&gt;&lt;hr&gt;&lt;br /&gt;
&lt;/p&gt;

&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;Replace関数によるシングルクォーテーション置換コード&quot;&gt;Replace関数によるシングルクォーテーション置換コード&lt;/h4&gt;
    &lt;p&gt;処置のロジックは非常にシンプルです。データベースにSQL文を渡す前に、文字列内に含まれるシングルクォーテーション「&#39;」を2つ「&#39;&#39;」に増やしてあげる（エスケープする）ことで、データベース側はそれを「1つのシングルクォーテーションという文字データ」として正しく解釈してくれます。&lt;/p&gt;&lt;p&gt;動画内で使用している、普遍的に使える対策コードの記述例がこちらです。&lt;/p&gt;
&lt;pre class=&quot;code lang-vb&quot; data-lang=&quot;vb&quot; data-unlink&gt;&lt;span class=&quot;synComment&quot;&gt;&#39; 文字列データ内のシングルクォーテーションを2つに置換してSQL構文エラーを防ぐ&lt;/span&gt;
&lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; safeMemo &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;String&lt;/span&gt;
safeMemo &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synIdentifier&quot;&gt;Replace&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;txtMemo&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Text&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&#39;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&#39;&#39;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;synComment&quot;&gt;&#39; SQL文を組み立てる（変数をシングルクォーテーションで囲む）&lt;/span&gt;
strSQL &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;INSERT INTO テーブル名 (メモ欄) VALUES (&#39;&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; safeMemo &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&#39;)&amp;quot;&lt;/span&gt;
&lt;/pre&gt;&lt;p&gt;&lt;hr&gt;&lt;br /&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;バグ票から影響範囲を芋づる式に潰すデバッグチェック手順&quot;&gt;バグ票から影響範囲を芋づる式に潰すデバッグ・チェック手順&lt;/h4&gt;
    &lt;p&gt;プログラムを直して「動いた！」で終わらせないのが、実務でシステムを安定させるための鍵です。動画内で実演している、バグ票とテスト仕様書を連動させた実践的な切り分け手順を追っていきましょう。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;[00:00](&lt;a href=&quot;https://www.youtube.com/watch?v=5XZbGGuDvnk&amp;t=0s&quot;&gt;https://www.youtube.com/watch?v=5XZbGGuDvnk&amp;t=0s&lt;/a&gt;) － &#39;&#39;手順1：バグ票を基にテスト仕様書へケースを追加する&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;バグの連絡を受けたら、すぐにプログラムの修正に取り掛かるのではなく、まずは「単体テスト仕様書」を開きます。&lt;br /&gt;
不足していたテストケース（例：メモ欄に「B&#39;z」や「A&#39;&#39;」と入力するケース）をテスト仕様書にしっかり明記します。バグが出たということは、そもそもテストデータ（考慮）が不足していたという証拠だからです。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;[01:52](&lt;a href=&quot;https://www.youtube.com/watch?v=5XZbGGuDvnk&amp;t=112s&quot;&gt;https://www.youtube.com/watch?v=5XZbGGuDvnk&amp;t=112s&lt;/a&gt;) － &#39;&#39;手順2：エラーの原因をJetエンジンの構造から分析する&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;「B&#39;z」と入力すると、SQL文を組み立てる際に文字列を囲むためのシングルクォーテーションのペアが途中で崩れてしまいます。&lt;br /&gt;
これにより、データベース（Jetエンジン）側が「Bという文字と、zという文字は何なんだ？」とSQL文を正しく解釈できなくなり、エラーを吐き出していた原因を突き止めます。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;[02:46](&lt;a href=&quot;https://www.youtube.com/watch?v=5XZbGGuDvnk&amp;t=166s&quot;&gt;https://www.youtube.com/watch?v=5XZbGGuDvnk&amp;t=166s&lt;/a&gt;) － &#39;&#39;手順3：Replace関数を組み込んで解決策を提示する&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;原因が分かれば、SQL文を組み立てる直前の箇所にReplace関数を差し込みます。シングルクォーテーション1つを2つに置き換える処理を追加し、プログラムを実行します。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;[03:43](&lt;a href=&quot;https://www.youtube.com/watch?v=5XZbGGuDvnk&amp;t=223s&quot;&gt;https://www.youtube.com/watch?v=5XZbGGuDvnk&amp;t=223s&lt;/a&gt;) － &#39;&#39;手順4：テスト仕様書通りにINSERT文の発行テストを行う&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;プログラム修正後、仕様書に新しく追加したテストケース「B&#39;z」を入力して登録ボタンを押します。&lt;br /&gt;
実際に発行されたINSERT INTO文のVALUESを確認し、文字が4つに増えてエスケープされていること、そしてデータベース側に「B&#39;z」として無事にデータが登録されたことを確認します。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;[05:58](&lt;a href=&quot;https://www.youtube.com/watch?v=5XZbGGuDvnk&amp;t=358s&quot;&gt;https://www.youtube.com/watch?v=5XZbGGuDvnk&amp;t=358s&lt;/a&gt;) － &#39;&#39;手順5：重要！修正処置から影響範囲（他の項目）を推測する&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;ここで終わらないのが大切です。「メモ欄でおかしくなったということは、同じ入力項目である『タイトル欄』にシングルクォーテーションを入れたらどうなるか？」と推測します。&lt;br /&gt;
実際にタイトル欄に「B&#39;z」と入れてみると、やはり同じクエリ式のエラーが出現します。連絡を受けた1箇所だけを直すのではなく、同じミスが隠れている範囲を見つけて、テストケースを追加し、同じ処理（Replace関数）をコピーして網羅していきます。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;[08:20](&lt;a href=&quot;https://www.youtube.com/watch?v=5XZbGGuDvnk&amp;t=500s&quot;&gt;https://www.youtube.com/watch?v=5XZbGGuDvnk&amp;t=500s&lt;/a&gt;) － &#39;&#39;手順6：まとめとバグ票のクローズ&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;ミスの原因が「ただ寝ぼけていただけなのか、それとも仕様の考慮不足だったのか」を振り返りつつ、バグ票とテスト仕様書をペアで上手に使って、修正範囲を綺麗にカバーしてワークフローを完了させます。&lt;/p&gt;&lt;p&gt;&lt;hr&gt;&lt;br /&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;未解決の問題点と現在最新の視点からアドバイス&quot;&gt;未解決の問題点と現在・最新の視点からアドバイス&lt;/h4&gt;
    &lt;p&gt;動画を振り返り、現代のシステム開発の視点を交えたアドバイスと考察です。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&#39;&#39;&lt;b&gt;「泥縄式」でも、同じ入力項目を疑えるかどうかがプロの境界線&lt;/b&gt;&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;バグ票で「メモ欄がバグっています」と言われて、本当にメモ欄のコードだけを直して戻す人は、後から同じようなバグ（タイトル欄でのエラー）を再発させて信頼を失います。「ここがダメなら、あっちの入力欄も同じロジックで作られているはずだ」と、影響範囲を自分の頭で推測して芋づる式にバグを潰せるようになることこそが、品質管理の本質です。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&#39;&#39;&lt;b&gt;現代の最新開発環境におけるベストプラクティス&lt;/b&gt;&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;動画内のコード（文字列連結によるSQL組み立て）は、現代では「SQLインジェクション」というセキュリティ脆弱性を生むリスクが高いため、実務のWebシステム等では非推奨となっています。&lt;br /&gt;
現在では、文字列をReplace関数で力技で置換するのではなく、&#39;&#39;「プリペアドステートメント（プレースホルダ）」&#39;&#39;と呼ばれる機能を使って、データとSQL構文を完全に分離してデータベースにバインドする方法が主流です。ただし、このレトロな文字置換の仕組み（エスケープ処理の裏側のロジック）を理解しておくことは、レガシーシステムの保守やデバッグの勘を養う上で、現代でも絶対に無駄にならない極めて貴重な概念学習になります。&lt;/p&gt;

    &lt;blockquote&gt;
        &lt;p&gt;&#39;&#39;&lt;b&gt;AIからのアドバイス：&lt;/b&gt;&#39;&#39;&lt;br /&gt;
もし現在、Access VBAや古い基幹システムの保守を任されているのであれば、この「手動Replaceによるエスケープ」が必要なコードに数多く遭遇するはずです。&lt;br /&gt;
コードを修正する際は、ぜひ動画内で紹介されているExcelの「バグ票」と「単体テスト仕様書」のシートを隣に並べ、セットでドキュメントを更新する癖をつけてみてください。ドキュメントとコードが常に一致している状態を作ることこそが、属人化を防ぎ、次の保守担当者に感謝される最高の「プロの仕事」になります。&lt;/p&gt;

    &lt;/blockquote&gt;
&lt;p&gt;&lt;hr&gt;&lt;br /&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;関連リンク&quot;&gt;関連リンク&lt;/h4&gt;
    
&lt;div class=&quot;section&quot;&gt;
    &lt;h5 id=&quot;公式情報検索リンク&quot;&gt;公式情報・検索リンク&lt;/h5&gt;
    
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://learn.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/replace-function&quot;&gt;Microsoft&amp;#x516C;&amp;#x5F0F;&amp;#xFF1A;VBA&amp;#x306E;Replace&amp;#x95A2;&amp;#x6570;&amp;#x30C9;&amp;#x30AD;&amp;#x30E5;&amp;#x30E1;&amp;#x30F3;&amp;#x30C8;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.google.com/search?q=VBA+SQL+%E3%82%BV%E3%83%B3%E3%82%B0%E3%83%AB%E3%82%AF%E3%82%A9%E3%83%BC%E3%83%86%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3&quot;&gt;Google&amp;#x691C;&amp;#x7D22;&amp;#xFF1A;VBA SQL &amp;#x30B7;&amp;#x30F3;&amp;#x30B0;&amp;#x30EB;&amp;#x30AF;&amp;#x30A9;&amp;#x30FC;&amp;#x30C6;&amp;#x30FC;&amp;#x30B7;&amp;#x30E7;&amp;#x30F3; &amp;#x30A8;&amp;#x30E9;&amp;#x30FC;&amp;#x5BFE;&amp;#x7B56;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/results?search_query=VBA+SQL+%E3%83%97%E3%83%AC%E3%83%BC%E3%82%B9%E3%83%9B%E3%83%AB%E3%83%80&quot;&gt;YouTube&amp;#x52D5;&amp;#x753B;&amp;#xFF1A;VBA SQL &amp;#x30D7;&amp;#x30EC;&amp;#x30FC;&amp;#x30B9;&amp;#x30DB;&amp;#x30EB;&amp;#x30C0; &amp;#x30D0;&amp;#x30A4;&amp;#x30F3;&amp;#x30C9;&amp;#x5909;&amp;#x6570;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;hr&gt;&lt;br /&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;おわりの挨拶コメント待ってます&quot;&gt;おわりの挨拶、コメント待ってます&lt;/h4&gt;
    &lt;p&gt;データに「&#39;」が混ざるだけでシステムが機嫌を損ねるあのイライラ、そして仕様書とバグ票をペアで地道に更新していく実務の泥臭さは伝わりましたでしょうか？&lt;/p&gt;&lt;p&gt;「古いAccessシステムの保守で、まさにこのエラーが出てReplace関数で救われた！」という実践の報告から、「今の開発環境ならバインド変数を使うけれど、裏側の仕組みが分かってスッキリした」という概念学習の感想、また「複数の項目を一括でエスケープする綺麗な共通関数を作りたい」といった設計の質問まで、お気軽にコメント欄へ書き込んでくださいね。&lt;/p&gt;&lt;p&gt;三流プログラマーを自認する私ですが、皆さんの「ここでハマった」という実録コメントが、同じ悩みを持つ多くのエンジニアの大きな助けになります！&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=5XZbGGuDvnk&quot;&gt;&amp;#x3010;&amp;#x52D5;&amp;#x753B;&amp;#x672C;&amp;#x7DE8;&amp;#x3011;SQL&amp;#x306E;&amp;#x30B7;&amp;#x30F3;&amp;#x30B0;&amp;#x30EB;&amp;#x30AF;&amp;#x30A9;&amp;#x30FC;&amp;#x30C6;&amp;#x30FC;&amp;#x30B7;&amp;#x30E7;&amp;#x30F3;&amp;#x7F6E;&amp;#x63DB;&amp;#x30D0;&amp;#x30B0;&amp;#x4FEE;&amp;#x6B63;&amp;#x3068;Excel&amp;#x4ED5;&amp;#x69D8;&amp;#x66F8;&amp;#x306E;&amp;#x904B;&amp;#x7528;&amp;#xFF08;VBA&amp;#xFF09;&amp;#x3092;&amp;#x8A73;&amp;#x3057;&amp;#x304F;&amp;#x898B;&amp;#x308B;&lt;/a&gt;&lt;br /&gt;
&lt;iframe width=&quot;420&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/5XZbGGuDvnk?feature=oembed&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; allowfullscreen title=&quot;【2009年版】VBA×SQLでシングルクォーテーション混入エラーを修正する方法（Replace関数）とテスト仕様書の運用&quot;&gt;&lt;/iframe&gt;&lt;cite class=&quot;hatena-citation&quot;&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=5XZbGGuDvnk&quot;&gt;www.youtube.com&lt;/a&gt;&lt;/cite&gt;&lt;br /&gt;
&lt;hr&gt;&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;下記AIが修正した字幕の中身&quot;&gt;下記、AIが修正した字幕の中身&lt;/h4&gt;
    &lt;p&gt;活舌の悪い私の動画から、下記のように作成できるなんて・・・&lt;/p&gt;

    &lt;blockquote&gt;
        &lt;p&gt;00:00:00	バグ票にバグの内容を書いたら、あとは担当者に渡して&lt;br /&gt;
00:00:07	プログラム修正に取り掛かってもらう&lt;br /&gt;
00:00:09	そのような流れですね&lt;br /&gt;
00:00:12	この時に合わせて、テスト仕様書にさっきのバグのデータを載せて渡してあげると&lt;br /&gt;
00:00:20	連絡を受けた時はいいですね&lt;br /&gt;
00:00:24	こんなのを撮っていてもしょうがないので&lt;br /&gt;
00:00:30	単体テスト仕様書が多分あると思うんですけど&lt;br /&gt;
00:00:34	システム名などはさっきと同じだと思うんですけど&lt;br /&gt;
00:00:38	そして確認場所、場所ですよと&lt;br /&gt;
00:00:41	テスト作成者&lt;br /&gt;
00:00:42	この辺は全然関係ないので置いておいて&lt;br /&gt;
00:00:45	テスト仕様書は要するに&lt;br /&gt;
00:00:47	テストケースの内容があって、どの結果が出るかという形で&lt;br /&gt;
00:00:52	例えばさっきエラーになったんですけど&lt;br /&gt;
00:00:54	メモ欄に「B&#39;z」とシングルクォーテーション付きで入れて&lt;br /&gt;
00:01:00	求められる出力結果がこれですね&lt;br /&gt;
00:01:02	結果が「B&#39;z」とメモ欄に登録されると&lt;br /&gt;
00:01:05	同じように&lt;br /&gt;
00:01:08	今度は「A&#39;&#39;」じゃないけど&lt;br /&gt;
00:01:10	Aにシングルクォーテーションを2つ入れて&lt;br /&gt;
00:01:16	どうなるか、入力データとしてはAにシングルクォーテーション&lt;br /&gt;
00:01:21	シングルクォーテーションで、求められる出力結果というのが&lt;br /&gt;
00:01:27	メモにきちんと「A&#39;&#39;」と登録されると&lt;br /&gt;
00:01:32	このようにバグ票をもらったら&lt;br /&gt;
00:01:34	テストデータも書き換えて、逆に言うと&lt;br /&gt;
00:01:37	このテストデータが不足していたので&lt;br /&gt;
00:01:40	バグが見つけられなかったのだと思います&lt;br /&gt;
00:01:42	ですが、問題のところが&lt;br /&gt;
00:01:53	今度は修正と処置内容になるんですけど&lt;br /&gt;
00:01:56	原因が「B&#39;z」とデータ入力すると&lt;br /&gt;
00:02:03	このようにSQLを作っている部分で&lt;br /&gt;
00:02:05	シングルクォーテーションのカンマの、ここが要するに&lt;br /&gt;
00:02:07	「B&#39;z」という形で入っていると思うんですよ&lt;br /&gt;
00:02:11	すると&lt;br /&gt;
00:02:13	このような文字列も、全部このような形になってしまうのは&lt;br /&gt;
00:02:16	あれだけど、この間に入ってしまっていて&lt;br /&gt;
00:02:20	この「B」という奴と「z」という奴という形で&lt;br /&gt;
00:02:23	DBの方が、これはどんな文字なんだと&lt;br /&gt;
00:02:25	判断できなくて&lt;br /&gt;
00:02:27	要するにJetのデータベースエンジンエラーという形で出てしまっています&lt;br /&gt;
00:02:34	処置は意外と簡単で、シングルクォーテーションを2つ&lt;br /&gt;
00:02:38	DBに渡してあげると&lt;br /&gt;
00:02:40	シングルクォーテーション1つと解釈してくれるので&lt;br /&gt;
00:02:44	単純に、このようにSQL&lt;br /&gt;
00:02:51	文を作る前に&lt;br /&gt;
00:02:52	Replace関数でそのシングルクォーテーション1つを2つに置き換えると&lt;br /&gt;
00:02:58	これで実行します&lt;br /&gt;
00:03:01	そして単体テスト仕様書通り&lt;br /&gt;
00:03:05	本当はバグが来てこの2と3しか追加していないんですけど&lt;br /&gt;
00:03:10	本当はこの1からやり直した方がいいんですけど&lt;br /&gt;
00:03:14	2と3を確認すると&lt;br /&gt;
00:03:16	メモ欄に「B&#39;z」と入れる、ここか、あれこれ&lt;br /&gt;
00:03:22	これは違う、合ってくるか&lt;br /&gt;
00:03:28	このメモ欄に「B&#39;z」と入れます&lt;br /&gt;
00:03:30	と、このように入れてINSERT INTO文を発行します&lt;br /&gt;
00:03:44	そうすると、このようにデータが入って&lt;br /&gt;
00:03:48	そして実際に発行された&lt;br /&gt;
00:03:50	SQL文が&lt;br /&gt;
00:03:53	こうですね&lt;br /&gt;
00:03:55	追加する時にINSERT INTOのVALUESで&lt;br /&gt;
00:04:00	テスト444の、Bのシングルクォーテーションシングルクォーテーション&lt;br /&gt;
00:04:04	z、そして時間が4時と&lt;br /&gt;
00:04:08	こんな時間に何をしているんだという話ですけど、なっています&lt;br /&gt;
00:04:12	実際に入ったデータを確認すると&lt;br /&gt;
00:04:15	タイトル444の「B&#39;z」という形で、このように入りました&lt;br /&gt;
00:04:25	今度はあれですよね&lt;br /&gt;
00:04:27	もう1個「A&#39;&#39;」を登録したいので&lt;br /&gt;
00:04:32	ここのタイトル89は置いておいて&lt;br /&gt;
00:04:35	このメモ欄に&lt;br /&gt;
00:04:38	Aにシングルクォーテーション、シングルクォーテーション&lt;br /&gt;
00:04:43	これをINSERT INTO文で登録します&lt;br /&gt;
00:04:46	そうすると、このようにSQL文では、4つに増えているのかな&lt;br /&gt;
00:04:54	4つに増えていて&lt;br /&gt;
00:04:56	そしてデータとしては&lt;br /&gt;
00:04:57	タイトルの89で、「A&#39;&#39;」じゃないけど&lt;br /&gt;
00:05:01	シングルクォーテーション、シングルクォーテーション&lt;br /&gt;
00:05:03	このように無事に入るようになります&lt;br /&gt;
00:05:10	そのような形で、このように処置を書きます&lt;br /&gt;
00:05:14	バグ票が来たので&lt;br /&gt;
00:05:18	このReplace文でシングルクォーテーションを2個に増やしました&lt;br /&gt;
00:05:22	ということですね&lt;br /&gt;
00:05:26	そして、この修正したタイミングで&lt;br /&gt;
00:05:28	本人がテストしているので&lt;br /&gt;
00:05:30	このように「メモ2」という形で&lt;br /&gt;
00:05:34	テスト仕様書をこのタイミングで書き換えてもいいのかなと&lt;br /&gt;
00:05:38	テスト仕様書を作る人と修正した人が同じだと&lt;br /&gt;
00:05:41	まずいとか、いろいろな意見もあるんですけど&lt;br /&gt;
00:05:44	そのような形で&lt;br /&gt;
00:05:46	テスト仕様書も直して、バグ票でバグも修正できました&lt;br /&gt;
00:05:52	これで終わるわけがないのが、やっぱり三流君なので&lt;br /&gt;
00:05:57	次は「処置内容とミスの原因から範囲を推測する」とあるんですけど&lt;br /&gt;
00:06:02	もう分かっていると思うんですけど&lt;br /&gt;
00:06:04	ミスの原因が、これ「B&#39;z」がおかしくなってしまう&lt;br /&gt;
00:06:10	B・シングルクォーテーション・zだと&lt;br /&gt;
00:06:12	このような形になって&lt;br /&gt;
00:06:14	文字列の判断がつかないと。で&lt;br /&gt;
00:06:16	これを2つに増やして、判断がつくようにする&lt;br /&gt;
00:06:19	そういう修正方法だったんですけど&lt;br /&gt;
00:06:21	それだったら&lt;br /&gt;
00:06:22	メモ欄だけじゃなくて、タイトル欄の項目も&lt;br /&gt;
00:06:26	これは何かというと、入力項目です&lt;br /&gt;
00:06:32	入力するのは&lt;br /&gt;
00:06:34	タイトル欄とメモ欄があって&lt;br /&gt;
00:06:36	ここがタイトル欄で、ここがメモ欄で&lt;br /&gt;
00:06:39	IDとこの時間は自動的に入力するんですけど&lt;br /&gt;
00:06:45	だったら、ここのタイトル欄に同じく「B&#39;z」と入れると&lt;br /&gt;
00:06:48	「B&#39;z」と入れます&lt;br /&gt;
00:06:56	とすると&lt;br /&gt;
00:06:59	当然、クエリ式、これが「おかしいですよ」という形で出ます&lt;br /&gt;
00:07:07	そのような形で&lt;br /&gt;
00:07:09	ミスがあったら、同じような範囲というか&lt;br /&gt;
00:07:11	修正範囲が。1つ。1つというのはおかしいですけど&lt;br /&gt;
00:07:17	バグで連絡を受けたのは1箇所なんですけど&lt;br /&gt;
00:07:19	同じような箇所はないかと探すのが普通の人。普通の人というのも変だけど&lt;br /&gt;
00:07:25	ですから、何というか&lt;br /&gt;
00:07:27	このバグが来たら、バグの内容を&lt;br /&gt;
00:07:31	このように受け取ります&lt;br /&gt;
00:07:32	そして修正・処置内容を入れます&lt;br /&gt;
00:07:35	そうしたら、ミスの原因と今後の対策で&lt;br /&gt;
00:07:39	ちょっと影響範囲というのはないですけど、ここに影響範囲&lt;br /&gt;
00:07:42	他の項目も修正する&lt;br /&gt;
00:07:45	修正するという言い方もおかしい、テストする&lt;br /&gt;
00:07:48	そうすると、このテスト仕様書がどんどん増えていくというのも変なんですけど&lt;br /&gt;
00:07:53	そうしたら、このように今は「メモ欄に」とか書いてますけど&lt;br /&gt;
00:07:57	そうではなくて、これ単体テスト仕様書となっていますけど&lt;br /&gt;
00:08:00	全体というか&lt;br /&gt;
00:08:02	全体の共通項目というのを1個作って&lt;br /&gt;
00:08:06	シングルクォーテーションが入るというのを&lt;br /&gt;
00:08:09	各登録系のプログラムでテストしないといけないという形で&lt;br /&gt;
00:08:17	書き直さないとまずいと思います&lt;br /&gt;
00:08:19	このような形でバグが来たら&lt;br /&gt;
00:08:22	バグ票を作って&lt;br /&gt;
00:08:25	バグ票&lt;br /&gt;
00:08:25	これですね。バグ票を作ってバグの内容をこのように記入します。記入したら&lt;br /&gt;
00:08:34	当然、修正と処置が入り、修正と処置が入ったら同じミスがないかとか&lt;br /&gt;
00:08:40	ミスの原因はただ寝ぼけていただけなのか&lt;br /&gt;
00:08:43	それとも実力不足なのか&lt;br /&gt;
00:08:46	それとも仕様書がおかしいとか、いろいろなことがあるんですけど&lt;br /&gt;
00:08:51	このようなところで喧嘩してもしょうがないんですが&lt;br /&gt;
00:08:54	そのような形で、バグ票とテスト仕様書を&lt;br /&gt;
00:08:58	ペアでうまく使ってバグを必ず潰すというか&lt;br /&gt;
00:09:03	修正範囲をうまくやる感じですかね&lt;br /&gt;
00:09:07	そのような形で、これも処置だったら&lt;br /&gt;
00:09:10	同じく&lt;br /&gt;
00:09:12	このReplace関数をただ単にコピーして&lt;br /&gt;
00:09:15	そのままタイトルも。そのような形で三流っぽくやっています&lt;br /&gt;
00:09:25	だから、いろいろなことを言われてしまうんですけどね&lt;br /&gt;
00:09:29	この辺は、だからこういうことなんでしょうね&lt;br /&gt;
00:09:33	「記事はなんか詰めが甘いよ」「間違いばっか」とか&lt;br /&gt;
00:09:38	いろいろ大変なんですけど&lt;br /&gt;
00:09:39	そのような感じです。ありがとうございました&lt;/p&gt;

    &lt;/blockquote&gt;
&lt;p&gt;&lt;hr&gt;&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;イラストもAI任せだしね&quot;&gt;イラストもAI任せだしね・・・&lt;/h4&gt;
    &lt;figure class=&quot;figure-image figure-image-fotolife&quot; title=&quot;先頭で使用したイラストと同じです&quot;&gt;&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260531/20260531142147.png&quot; width=&quot;1200&quot; height=&quot;670&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;figcaption&gt;先頭で使用したイラストと同じです&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;下記、AIイラストのプロンプト&lt;/p&gt;
&lt;pre class=&quot;code text&quot; data-lang=&quot;text&quot; data-unlink&gt;16:9 横長の比率で、やさしいアニメ風のイラストをデザインして描いてください

左側:
太った中年プログラマー(おっさんKen3私)が、
「最近のAI、動画の理解度・修正力がすごいなぁ～」
と、つぶやきながら、感心しながら、作業を行っている様子
下記私の心の様子を参考にしながら心情をデザインしてください
``` 背景資料
活舌の悪い私の動画を自動文字起こしするとボロボロになります、そのデータから現在26/05/31のGeminiなら、&amp;#34;元動画.mp4&amp;#34;と&amp;#34;ボロボロ自動字幕.txt&amp;#34;の２つを渡し、修正を依頼すると、「B&amp;#39;z」の意味やバグの意味を読み取って、&amp;#34;正しい字幕&amp;#34;や&amp;#34;まとめた備忘録ブログ&amp;#34;を作成してくれます。最近のAIってすごいなぁ・・と思ったり。※字幕修正・・地味に大変です、修正止めようかなぁ・・挫折しそうです。
```

真ん中・仕切り:
仕切り線とネット空間の絵・図、ネット上サーバーのイメージ

右側:
若い視聴者、ブログの読者たち
「読みやすくはなったけど、発音注意ですよ、気にするだけで違いますよ」
「あせらないで、リハーサルしましょう」
「歯をみがきましょう」
「中身がスカスカの動画をいくら修正してもあまり効果が無い」
「古い動画もたまにはいいけど、新作を作らないと忘れちゃうよ」
と
視聴者の声をイラストにしてください。
(若い視聴者たちの意見として、イラスト化してください。※本当は同じ年代のおじさん・おばさんに言われているかもしれませんが、若者の姿でイラストを作成してください)&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;</content>        
        <link rel="enclosure" href="https://cdn.image.st-hatena.com/image/scale/eee5bd3983eb238e36bd06e4543d933714decba3/backend=imagemagick;version=1;width=1300/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fk%2Fken3memo%2F20260531%2F20260531142251.png" type="image/png" length="0" />

        <author>
            <name>ken3memo</name>
        </author>
    </entry>
    
  
    
    
    <entry>
        <title>JRA競馬 日本ダービーの噂・都市伝説をAIを使って検索してみた みなさんの予想が当たるといいですね・・・</title>
        <link href="https://ken3memo.hatenablog.com/entry/2026/05/30/223000"/>
        <id>hatenablog://entry/14945776032036916959</id>
        <published>2026-05-30T22:30:00+09:00</published>
        <updated>2026-05-30T22:30:00+09:00</updated>        <summary type="html">【2026年日本ダービー】オッズの裏に潜む怪情報！？第93回東京優駿の「不気味な偏り」と社会的サインを徹底解剖！ どうも！普段は競馬のオッズ取得プログラムをカタカタ組んでいる、三流プログラマーの中年おじさんです。 競馬の予想自体はぶっちゃけ素人なんですが、プログラムのためにデータをこねくり回していると、時々「データを超えた不気味な偏り」や「偶然とは思えないオカルト事象」に出会うことがあります。 いよいよ迎える2026年5月31日、競馬界の最高峰「第93回東京優駿（日本ダービー）」。 全ホースマンが一生に一度の栄誉をかけて挑む究極の聖域ですが、今年は例年以上に「噂話や都市伝説」のネタが豊作なんで…</summary>
        <content type="html">&lt;h1 id=&quot;2026年日本ダービーオッズの裏に潜む怪情報第93回東京優駿の不気味な偏りと社会的サインを徹底解剖&quot;&gt;【2026年日本ダービー】オッズの裏に潜む怪情報！？第93回東京優駿の「不気味な偏り」と社会的サインを徹底解剖！&lt;/h1&gt;

&lt;p&gt;どうも！普段は競馬のオッズ取得プログラムをカタカタ組んでいる、三流プログラマーの中年おじさんです。&lt;/p&gt;

&lt;p&gt;競馬の予想自体はぶっちゃけ素人なんですが、プログラムのためにデータをこねくり回していると、時々&lt;strong&gt;「データを超えた不気味な偏り」&lt;/strong&gt;や&lt;strong&gt;「偶然とは思えないオカルト事象」&lt;/strong&gt;に出会うことがあります。&lt;/p&gt;

&lt;p&gt;いよいよ迎える2026年5月31日、競馬界の最高峰&lt;strong&gt;「第93回東京優駿（日本ダービー）」&lt;/strong&gt;。
全ホースマンが一生に一度の栄誉をかけて挑む究極の聖域ですが、今年は例年以上に「噂話や都市伝説」のネタが豊作なんです。
&lt;figure class=&quot;figure-image figure-image-fotolife&quot; title=&quot;集めたデータを図解してみると・・・&quot;&gt;&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260530/20260530205858.png&quot; width=&quot;1200&quot; height=&quot;670&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;figcaption&gt;集めたデータを図解してみると・・・&lt;/figcaption&gt;&lt;/figure&gt;
今回は、データが示す統計的な歪みから、世相が指し示す不気味なサインまで、今年のダービーを面白くする「都市伝説の偏り」を徹底解剖していきます！&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;昨年の平穏決着が引き起こす大波乱の揺り戻し&quot;&gt;昨年の平穏決着が引き起こす「大波乱の揺り戻し」&lt;/h2&gt;

&lt;p&gt;オカルトを論じる前に、まずは客観的な事実として前年（2025年）の第92回日本ダービーを振り返ってみましょう。&lt;/p&gt;

&lt;p&gt;結果は、単勝1番人気に支持された&lt;strong&gt;クロワデュノール&lt;/strong&gt;が後続を完封する王者の走りで快勝。3連単の配当は&lt;strong&gt;8,460円&lt;/strong&gt;に留まる、極めて平穏な「本命サイド」の決着でした。&lt;/p&gt;

&lt;p&gt;実は、過去10年のダービーを検証すると、3連単で10万円以上の大波乱になった年が3回ある一方で、3万円未満の平穏な決着は過半数の6回を占めています。この極端な二面性こそが、ダービーの都市伝説を補強するポイント。&lt;/p&gt;

&lt;p&gt;競馬界には&lt;strong&gt;「平穏な本命決着の翌年ほど、反動による大波乱のオカルトが発動しやすい」&lt;/strong&gt;という心理的な揺り戻しの警戒感があります。2018年には3連単285万超えという歴史的超高配当も飛び出しているだけに、今年の第93回大会には不穏な空気が漂っています……。&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;AIでデータを集めてみました&quot;&gt;&lt;figure class=&quot;figure-image figure-image-fotolife&quot; title=&quot;AIでデータを集めてみました&quot;&gt;&lt;span itemscope=&quot;itemscope&quot; itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img class=&quot;hatena-fotolife&quot; height=&quot;670&quot; itemprop=&quot;image&quot; loading=&quot;lazy&quot; src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260530/20260530210306.png&quot; title=&quot;&quot; width=&quot;1200&quot; /&gt;&lt;/span&gt;&lt;figcaption&gt;AIでデータを集めてみました&lt;/figcaption&gt;&lt;/figure&gt;&lt;/h2&gt;

&lt;h2 id=&quot;統計的バイアス馬番枠番に潜む天国と地獄&quot;&gt;統計的バイアス：馬番・枠番に潜む「天国と地獄」&lt;/h2&gt;

&lt;p&gt;日本ダービーの枠順決定で、ファンが最も固唾を呑んで見守るのが「内枠有利・外枠不利」のバイアス。ここには、完全に好走を拒絶する「地獄のジンクス」が存在します。&lt;/p&gt;

&lt;h3 id=&quot;40年を超える未勝利の呪縛4枠&quot;&gt;40年を超える未勝利の呪縛「4枠」&lt;/h3&gt;

&lt;p&gt;過去10年のデータにおいて、最大の異常値を示しているのが&lt;strong&gt;「4枠」&lt;/strong&gt;です。なんと勝率は&lt;strong&gt;0.0%&lt;/strong&gt;。2着・3着には入るものの、1着の扉は完全に遮断されています。
さらに恐ろしいことに、この傾向は過去10年に留まらず、&lt;strong&gt;「40年以上も4枠からダービー馬が誕生していない」&lt;/strong&gt;という、JRA史上最も強力な呪われたジンクスとして継続中。&lt;/p&gt;

&lt;p&gt;今年、この呪いの4枠に配置されたのは以下の2頭。
* &lt;strong&gt;7番：メイショウハチコウ&lt;/strong&gt;
* &lt;strong&gt;8番：ショウナンガルフ&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;世間の注目度が低い伏兵の2頭ですが、40年超の呪いを解く奇跡の使者となれるか、都市伝説的な見どころです。&lt;/p&gt;

&lt;h3 id=&quot;3着以内すら拒絶する死の馬番&quot;&gt;3着以内すら拒絶する「死の馬番」&lt;/h3&gt;

&lt;p&gt;馬番別で見たときに、過去10年で3着以内をただの一度も出していない「死の馬番」があります。それが&lt;strong&gt;「9番」「14番」「16番」&lt;/strong&gt;の3つ。完全な好走拒絶状態にあるこの番号に、今年は不気味な配置が行われました。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;9番：アウダーシア&lt;/strong&gt;（スプリングS勝ち馬）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;14番：ゴーイントゥスカイ&lt;/strong&gt;（青葉賞馬）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;16番：グリーンエナジー&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;有力馬の一角であるゴーイントゥスカイやアウダーシアにとって、この配置は統計的な死活問題。この強力な呪縛を実力でねじ伏せられるかが最大の焦点です。&lt;/p&gt;

&lt;h3 id=&quot;本命は外穴は内の先行本命は外のスムーズさ&quot;&gt;本命は外？「穴は内の先行、本命は外のスムーズさ」&lt;/h3&gt;

&lt;p&gt;ダービーには&lt;strong&gt;「人気馬は外枠の方が勝ちやすい」&lt;/strong&gt;という、直感に反する統計もあります。5番人気以内の実力馬に限定した場合、1〜4枠よりも5〜8枠のほうが勝率・回収率ともに圧倒しているのです。実力馬が道中で包まれるリスクを回避し、外からスムーズに能力を出し切れるためと言われています。
逆に、人気薄の穴馬が激走するのは「内枠を引き当ててインコースをロス無く立ち回った先行馬」ばかり。この非対称構造は、ダービーの強力な技術的都市伝説として機能しています。&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;ローテーションの謎青葉賞の呪いが2026年に崩壊する&quot;&gt;ローテーションの謎：「青葉賞の呪い」が2026年に崩壊する？&lt;/h2&gt;

&lt;p&gt;ダービーを制する上で前走のステップレースは決定的な要素ですが、ここにも大きな歴史の転換期が訪れています。&lt;/p&gt;

&lt;h3 id=&quot;皐月賞組の圧倒的な支配ルール&quot;&gt;皐月賞組の圧倒的な支配ルール&lt;/h3&gt;

&lt;p&gt;前走・皐月賞組は、過去10年で7勝を挙げている圧倒的な主流派。ただし、好走した大半は「皐月賞で5番人気以内」かつ「1800〜2000mの重賞勝ち実績」があった馬たちです。&lt;/p&gt;

&lt;p&gt;一方で、別路線組（青葉賞、京都新聞杯など）には&lt;strong&gt;「例外なく前走で2着以内（連対）に入っていなければ本番で沈黙する」&lt;/strong&gt;という鉄則があります。今回、京都新聞杯を制して無傷の3連勝で乗り込んできた&lt;strong&gt;コンジェスタス&lt;/strong&gt;（3枠6番）は、この厳しい鉄則をクリアした不気味な存在です。&lt;/p&gt;

&lt;h3 id=&quot;2026年ついに青葉の呪縛が解ける&quot;&gt;2026年、ついに「青葉の呪縛」が解ける&lt;/h3&gt;

&lt;p&gt;別路線組で最も有名な都市伝説といえば、&lt;strong&gt;「青葉賞馬はダービーを勝てない」&lt;/strong&gt;という呪い。東京2400mという全く同じ舞台でありながら、1994年の指定以降、歴代の勝ち馬からダービー馬は1頭も誕生していません。シンボリクリスエスやゼンノロブロイ級の名馬ですら2着に泣いてきました。&lt;/p&gt;

&lt;p&gt;その要因は、本番まで「中3週」という強行軍による肉体的疲労とされていましたが……&lt;strong&gt;2026年の今年、この前提が根底から崩壊しました！&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;番組表の改定により、青葉賞の施行時期が1週間前倒しされ、間隔が&lt;strong&gt;「中4週」&lt;/strong&gt;へと拡大されたのです。この「たった1週間」の恩恵は、3歳馬の疲労回復において劇的なパラダイムシフトをもたらします。&lt;/p&gt;

&lt;p&gt;この歴史的な転換期に青葉賞を制したのが、武豊騎手が駆る&lt;strong&gt;ゴーイントゥスカイ&lt;/strong&gt;。
記録した「2分23秒0」という時計は青葉賞史上最速タイ。中4週という新たな武器を手に入れた今、30年以上続いた呪いを完全に破壊し、コントレイルからの父子3代制覇という新たな神話を紡ぎ出す背景は整いました。&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;人物の因縁武豊の神格と福永祐一の輪廻&quot;&gt;人物の因縁：武豊の神格と、福永祐一の輪廻&lt;/h2&gt;

&lt;p&gt;ダービーは人と馬が織りなす宿命の舞台。今年もドラマチックな因縁が満載です。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;武豊という「神格」&lt;/strong&gt;
  ダービー最多の6勝を誇るレジェンド。今年は前述の「呪い破り」を狙うゴーイントゥスカイとのコンビで、史上最多記録をさらに更新する7勝目を狙います。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;福永祐一調教師の「輪廻」&lt;/strong&gt;
  騎手として3勝を挙げた名手が、調教師として開業3年目で&lt;strong&gt;アスクエジンバラ&lt;/strong&gt;（6枠12番）を擁して初のダービーに挑みます。もし勝利すれば、JRA史上4人目、実に39年ぶりとなる&lt;strong&gt;「騎手と調教師の双方で日本ダービー制覇」&lt;/strong&gt;という歴史的快挙が達成されます。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;上原佑紀厩舎の「同一厩舎4頭出し」という異常事態&lt;/strong&gt;
  美浦の若手実力派・上原調教師が、なんと全18頭中4頭（全体の2割以上）を自分の厩舎の馬で占拠するという、統計的にもオカルト的にもとんでもない偏りを発生させています。

&lt;ul&gt;
&lt;li&gt;1枠1番：ライヒスアドラー&lt;/li&gt;
&lt;li&gt;7枠14番：ゴーイントゥスカイ&lt;/li&gt;
&lt;li&gt;7枠15番：フォルテアンジェロ&lt;/li&gt;
&lt;li&gt;8枠16番：グリーンエナジー
「4頭のうちのどれかが不気味に激走する」というオカルト的思考を呼び起こすには十分すぎる偏りです。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;hr /&gt;

&lt;h2 id=&quot;開催日の暗号と社会的サインの解読&quot;&gt;開催日の「暗号」と社会的サインの解読&lt;/h2&gt;

&lt;p&gt;競馬の「サイン理論」において、開催回数や日付、その年の重大ニュースと出走馬名のリンクは外せないお楽しみ要素。今年の暗号は鳥肌ものです。
&lt;figure class=&quot;figure-image figure-image-fotolife&quot; title=&quot;オカルトサイン？？&quot;&gt;&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260530/20260530210040.png&quot; width=&quot;1200&quot; height=&quot;670&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;figcaption&gt;オカルトサイン？？&lt;/figcaption&gt;&lt;/figure&gt;&lt;/p&gt;

&lt;h3 id=&quot;開催日5月31日と3枠5番の戦慄すべき符合&quot;&gt;開催日「5月31日」と「3枠5番」の戦慄すべき符合&lt;/h3&gt;

&lt;p&gt;最もゾクッとする符合がこれです。「5月31日」という数字そのものが、そのまま&lt;strong&gt;「3枠5番」&lt;/strong&gt;に配置された&lt;strong&gt;バステール&lt;/strong&gt;（川田将雅騎手）に収束しています。&lt;/p&gt;

&lt;p&gt;さらに掘り下げると、バステールは「斉藤崇史厩舎×父キタサンブラック」という血統。これ、昨年のダービー馬クロワデュノールと&lt;strong&gt;完全に同一の「厩舎×血統パッケージ」&lt;/strong&gt;なんです。
開催日の数字をそのまま枠番・馬番に配し、昨年覇者と同じ黄金コンビで挑むバステール。主催者が暗黙のうちに提示している「仕組まれたサイン」ではないかという噂を補強する最大の根拠です。&lt;/p&gt;

&lt;h3 id=&quot;社会的サイン嵐ARASHIの東京ドームラストライブ&quot;&gt;社会的サイン①：嵐（ARASHI）の東京ドームラストライブ&lt;/h3&gt;

&lt;p&gt;ダービー当日、東京ドームでは国民的グループ「嵐」のラストライブが開催されます。この歴史的イベントと完全にリンクするのが、6枠11番の&lt;strong&gt;リアライズシリウス&lt;/strong&gt;。&lt;/p&gt;

&lt;p&gt;馬名をカタカナで分解してみてください。
「リ&lt;strong&gt;ア&lt;/strong&gt;イズ&lt;strong&gt;シ&lt;/strong&gt;リウ&lt;strong&gt;ス&lt;/strong&gt;」 ⇒ &lt;strong&gt;ア・ラ・シ&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;なんと、馬名の中に「ア・ラ・シ」の3文字が完全に隠されているのです！さらに、主戦の津村騎手がダービー前日に落馬負傷するという突発的な波乱（まさしく嵐の前の荒れ模様）が起きており、ストーリー性も含めてサイン馬券の中心に急浮上しています。&lt;/p&gt;

&lt;h3 id=&quot;社会的サインドラクエの日とアスクエジンバラ&quot;&gt;社会的サイン②：ドラクエの日と「アスクエジンバラ」&lt;/h3&gt;

&lt;p&gt;ダービーウィークの5月27日は「ドラクエの日」。今年は最新作「ドラゴンクエストXII（12）」の映像が公開され大盛り上がりしました。
この社会現象が指し示すのは、ゲート番号&lt;strong&gt;「12番」&lt;/strong&gt;の&lt;strong&gt;アスクエジンバラ&lt;/strong&gt;。エジンバラは、ドラクエ3に登場する地名「エジンベア」の元ネタとされています。すぎやまこういち氏のファンファーレが鳴り響く東京競馬場で、12番の激走という「かいしんのいちげき」が炸裂するかもしれません。&lt;/p&gt;

&lt;h3 id=&quot;社会的サインフィギュアりくりゅう金メダル引退&quot;&gt;社会的サイン③：フィギュア「りくりゅう」金メダル引退&lt;/h3&gt;

&lt;p&gt;フィギュアスケートのペアで史上初の金メダルを獲得し、今春引退した「りくりゅう」ペア。この偉大な「ペア」を記念するサインは、今年のダービーに出走する調教師たちの「2頭出し（ペア）」に共鳴します。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;野中厩舎の2頭出し（2番マテンロウゲイル＆4番アルトラムス）&lt;/li&gt;
&lt;li&gt;手塚厩舎の2頭出し（9番アウダーシア＆11番リアライズシリウス）&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;また、ジェンダーを超越した象徴である氷川きよしの「限界突破×サバイバー」サインから「2」という数字も浮上。2番、12番、あるいは2枠や6枠といった要素が「ペア」および「2」というオカルトの糸で一本に結ばれています。&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;結論データを選ぶか言霊の暗号に身を委ねるか&quot;&gt;結論：データを選ぶか、言霊の暗号に身を委ねるか&lt;/h2&gt;

&lt;p&gt;第93回日本ダービーは、長年競馬界に君臨してきた数々のジンクスや都市伝説が、時代の変化によって劇的に塗り替えられる歴史的な転換点になりそうです。&lt;/p&gt;

&lt;p&gt;中4週のローテ改定で魔力を失った「青葉賞の呪い」を切り裂くか。
開催日マジックと昨年覇者のデジャヴをまとう「3枠5番」が激走するか。
あるいは、東京ドームの「嵐」や「ドラクエ12」の社会的サインが発動するか。&lt;/p&gt;

&lt;p&gt;&lt;figure class=&quot;figure-image figure-image-fotolife&quot; title=&quot;数打っても、なかなか、当たらなかったり・・・&quot;&gt;&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260530/20260530210145.png&quot; width=&quot;1200&quot; height=&quot;670&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;figcaption&gt;数打っても、なかなか、当たらなかったり・・・&lt;/figcaption&gt;&lt;/figure&gt;&lt;/p&gt;

&lt;p&gt;データが示す確かな統計的バイアスを信じるか、それとも世相と名前が織りなす言霊の暗号に身を委ねるか。いずれの切り口を選ぶにせよ、今年のダービーが後世まで語り継がれる濃厚なドラマになることだけは間違いなさそうです！&lt;/p&gt;
</content>        
        <link rel="enclosure" href="https://cdn.image.st-hatena.com/image/scale/90e96f7681311b3572d0cee141490c42c04b685e/backend=imagemagick;version=1;width=1300/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fk%2Fken3memo%2F20260530%2F20260530210040.png" type="image/png" length="0" />

        <author>
            <name>ken3memo</name>
        </author>
    </entry>
    
  
    
    
    <entry>
        <title>都市伝説をAIと検索【データ×オカルト】オークス2026予想：桜花賞組の死角と、忘れな草賞馬「ジュウリョクピエロ」に漂う激走の予感 JRA競馬</title>
        <link href="https://ken3memo.hatenablog.com/entry/2026/05/23/202230"/>
        <id>hatenablog://entry/17179246901391127546</id>
        <published>2026-05-23T20:22:30+09:00</published>
        <updated>2026-05-23T20:22:30+09:00</updated>        <summary type="html">【2026オークス】オカルトか、それとも科学か？常識を覆す「歴史的バイアス」と不気味すぎる「重力サイン」を徹底解剖！ どうも！競馬のオッズ取得プログラムを夜な夜な組んでいる、しがない中年プログラマーのおじさんです。 普段は数字とコードばかり睨みつけていて、馬券予想に関してはぶっちゃけ「素人」なんですが……。先日、とんでもなく面白い「オークス（優駿牝馬）の分析レポート」をシステム仲間から入手してしまいました。 データ派が思わず唸る統計的な「偏り（バイアス）」から、サイン派が大好物の「オカルト・数秘術」まで、今年のオークス（2026年5月24日開催）に隠された奇妙な一致がこれでもかと詰め込まれた内…</summary>
        <content type="html">&lt;h1 id=&quot;2026オークスオカルトかそれとも科学か常識を覆す歴史的バイアスと不気味すぎる重力サインを徹底解剖&quot;&gt;【2026オークス】オカルトか、それとも科学か？常識を覆す「歴史的バイアス」と不気味すぎる「重力サイン」を徹底解剖！&lt;/h1&gt;

&lt;p&gt;どうも！競馬のオッズ取得プログラムを夜な夜な組んでいる、しがない中年プログラマーのおじさんです。
普段は数字とコードばかり睨みつけていて、馬券予想に関してはぶっちゃけ「素人」なんですが……。先日、とんでもなく面白い「オークス（優駿牝馬）の分析レポート」をシステム仲間から入手してしまいました。&lt;/p&gt;

&lt;p&gt;データ派が思わず唸る統計的な「偏り（バイアス）」から、サイン派が大好物の「オカルト・数秘術」まで、今年のオークス（2026年5月24日開催）に隠された奇妙な一致がこれでもかと詰め込まれた内容です。&lt;/p&gt;

&lt;p&gt;&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260523/20260523201558.png&quot; width=&quot;1200&quot; height=&quot;670&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;競馬ファンの皆さん、「そんなの都市伝説だろ！」と笑うか、「いや、もしかして……」と身震いするか、ぜひご自身の目で確かめてみてください！&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;1-まずは前年2025年の振り返り十万馬券の引き金は別路線組だった&quot;&gt;1. まずは前年（2025年）の振り返り：十万馬券の引き金は「別路線組」だった&lt;/h2&gt;

&lt;p&gt;まずは客観的なベースとして、去年の結果をおさらいしておきましょう。&lt;/p&gt;

&lt;h3 id=&quot;2025年第86回オークス-結果&quot;&gt;2025年（第86回）オークス 結果&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;1着&lt;/strong&gt;：カムニャック（4番人気・フローラS勝ち馬・A.シュタルケ騎手）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;2着&lt;/strong&gt;：アルマヴェローチェ（2番人気・桜花賞組）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;3着&lt;/strong&gt;：タガノアビー（10番人気・激走の伏兵）
※1番人気のエンブロイダリーは9着に大敗。&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;3連単は &lt;strong&gt;130,640円&lt;/strong&gt; の中波乱決着。
ここで注目したいのは、王道の桜花賞組（アルマヴェローチェ）を、別路線から殴り込んできたフローラS組のカムニャックがねじ伏せたという構図です。近年のオークスは、この「別路線組による下克上」という地殻変動がデフォルトになりつつあります。&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;2-競馬の常識を疑え過去10年データが示す4つの異常バイアス&quot;&gt;2. 競馬の常識を疑え！過去10年データが示す「4つの異常バイアス」&lt;/h2&gt;

&lt;p&gt;レポートを読んで一番驚いたのがここです。私たちが普段信じている「競馬の常識」が、オークスにおいては見事に崩れ去っていました。&lt;/p&gt;

&lt;h3 id=&quot;-崩壊する内枠有利説&quot;&gt;① 崩壊する「内枠有利説」&lt;/h3&gt;

&lt;p&gt;東京芝2400mといえば「ロスなく回れる内枠有利」が定説ですよね。しかし、近年のデータはそれを真っ向から否定しています。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;1枠&lt;/strong&gt;：過去10年の複勝率は30.0%と優秀ですが、&lt;strong&gt;2020年以降の過去5年に絞ると【0-1-0-9】（複勝率10.0%）&lt;/strong&gt;と激減。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;7枠&lt;/strong&gt;：過去10年で&lt;strong&gt;最多タイの3勝&lt;/strong&gt;をマーク。去年も1着・3着を輩出。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;8枠&lt;/strong&gt;：2022年にスターズオンアースが大外18番枠から勝利。&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;馬場造園技術の向上でインコースが必ずしも有利ではなくなったこと、またタフな2400m戦で「内枠で包まれるリスク」が「外枠でスムーズに進路を確保できるメリット」を上回っている、という物理的な因果関係が見えてきます。&lt;/p&gt;

&lt;h3 id=&quot;-ローテーションの異端と死にパターン&quot;&gt;② ローテーションの「異端」と「死にパターン」&lt;/h3&gt;

&lt;p&gt;最重要ステップは当然「桜花賞」ですが、ここに奇妙な二極化現象が起きています。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;桜花賞4着以内&lt;/strong&gt;：【6-5-3-16】（複勝率46.7%）と抜群の安定感。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;桜花賞5〜9着&lt;/strong&gt;：【0-0-0-22】で&lt;strong&gt;まさかの全滅&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;桜花賞10着以下&lt;/strong&gt;：なんと&lt;strong&gt;4頭もの好走馬&lt;/strong&gt;を輩出！&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;マイルのスピード勝負で惨敗した長距離砲が、2400mへの距離延長で一気に覚醒するパターンです。&lt;/p&gt;

&lt;p&gt;さらに、別路線組のオカルト的激走ルートがこちら。
* &lt;strong&gt;「忘れな草賞」勝ち馬の伝説&lt;/strong&gt;：エリンコート、ミッキークイーン、ラヴズオンリーユーなどがここを勝って本番も制覇。勝率が異常に高い。（今年の該当馬：&lt;strong&gt;ジュウリョクピエロ&lt;/strong&gt;）
* &lt;strong&gt;「矢車賞」のヒモ荒れパターン&lt;/strong&gt;：1勝クラスの矢車賞経由の馬は、過去5年で【0-0-2-0】。2021年のハギノピリナ（16番人気3着）、去年のタガノアビー（10番人気3着）と、超人気薄が突っ込んできています。&lt;/p&gt;

&lt;h3 id=&quot;-馬体重460479kgの絶対領域&quot;&gt;③ 馬体重「460〜479kg」の絶対領域&lt;/h3&gt;

&lt;p&gt;3歳牝馬の成長期ゆえ、馬体重のスタッツに極端な偏りが出ています。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;当日460〜479kg&lt;/strong&gt;：【7-5-4-38】（勝率13.0%）で&lt;strong&gt;勝ち馬の7割&lt;/strong&gt;がこのゾーン。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;当日500kg以上&lt;/strong&gt;：【0-0-0-8】と&lt;strong&gt;完全全滅&lt;/strong&gt;。&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;東京の長い直線と急坂を走る上で、自重が重すぎる大型牝馬はスタミナ消費が激しくなり、致命的な足枷になるという力学的な証明です。&lt;/p&gt;

&lt;h3 id=&quot;-栗東所属ジョッキーの呪縛とルメール無双&quot;&gt;④ 「栗東所属ジョッキーの呪縛」とルメール無双&lt;/h3&gt;

&lt;p&gt;関西（栗東）所属の騎手が、2015年からなんと&lt;strong&gt;13連勝中&lt;/strong&gt;（短期免許や栗東所属期間含む）。関東（美浦）の生え抜き騎手が最後に勝ったのは2011年まで遡ります。戸崎騎手や横山武騎手、三浦騎手といった実力派がこの高い壁に阻まれ続けているのです。&lt;/p&gt;

&lt;p&gt;また、&lt;strong&gt;C.ルメール騎手&lt;/strong&gt;は過去10年で【4-2-0-3】（複勝率66.7%）という化け物スタッツ。特に「乗り替わりでルメール」の馬は、乗り替わり全体の勝ち星を独占しています（今年は&lt;strong&gt;ドリームコア&lt;/strong&gt;が該当）。&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;3-サイン派必見第87回と5月24日に隠された数秘術&quot;&gt;3. サイン派必見！「第87回」と「5月24日」に隠された数秘術&lt;/h2&gt;

&lt;p&gt;ここからは、JRAが密かに仕組む（？）「シナリオ」を解読するオカルトの世界です。今年の数字には、鳥肌が立つような符合があります。&lt;/p&gt;

&lt;h3 id=&quot;87という数字の強烈な発色&quot;&gt;「87」という数字の強烈な発色&lt;/h3&gt;

&lt;p&gt;今年は&lt;strong&gt;第87回&lt;/strong&gt;。この数字をそのまま枠番にバラすと、&lt;strong&gt;「8枠」&lt;/strong&gt;と&lt;strong&gt;「7枠」&lt;/strong&gt;になります。
今年の枠順を見ると、この外枠に強力な有力馬がすっぽり収まりました。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;7枠&lt;/strong&gt;：フローラS2着のエンネ（13番）、岩田望来騎手のアンジュドジョワ（15番）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;8枠&lt;/strong&gt;：忘れな草賞馬ジュウリョクピエロ（16番）、フローラS馬ラフターラインズ（18番）&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;人気を二分するであろうラフターラインズが「8枠18番」、ジュウリョクピエロが「8枠16番」を引いたのは、まさに「8」という数字が強烈にサインを出している証拠。
ちなみに馬番をストレートに狙うなら、7番スタニングレディ、8番スマートプリエールの「7-8」連券もオカルト馬券として非常に魅力的です。&lt;/p&gt;

&lt;h3 id=&quot;開催日5月24日の掛け算&quot;&gt;開催日「5月24日」の掛け算&lt;/h3&gt;

&lt;p&gt;開催日の数字「5、2、4」を分解・結合してみます。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;5 ＋ 2 ＋ 4 ＝ 11&lt;/strong&gt;
今年のオークスは東京の「11レース」。そして「11番」にはアメティスタが配置。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;5 × 2 ＝ 10&lt;/strong&gt;
なんと桜花賞馬&lt;strong&gt;スターアニスが「5枠10番」&lt;/strong&gt;を引き当てました！日付の「5」と掛け算による美しい整合性。JRAの演出を疑うには十分すぎる符合です。&lt;/li&gt;
&lt;/ul&gt;


&lt;hr /&gt;

&lt;h2 id=&quot;4-今年の主役公式が仕掛けた重力アインシュタインサイン&quot;&gt;4. 今年の主役！？公式が仕掛けた「重力（アインシュタイン）サイン」&lt;/h2&gt;

&lt;p&gt;現在、サイン競馬ファンの間で急速に噂されているのが、今年のオークス公式プロモーション広告のビジュアルです。
背景に「光がねじ曲げられるような幾何学模様」が描かれており、これがアインシュタインの一般相対性理論における&lt;strong&gt;「重力レンズ効果」&lt;/strong&gt;を示しているのではないか、と言われています。&lt;/p&gt;

&lt;p&gt;そして、今年の出走馬にはそのものズバリの名前を持つ馬がいます。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ジュウリョクピエロ（馬名意味：重力＋ピエロ）&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;この馬、ダートから芝に転向後、前述の「忘れな草賞」を異次元の末脚（上がり最速35.2秒）で他馬を文字通り「ねじ伏せて」勝っているんです。
&lt;strong&gt;「巨大な重力（ジュウリョクピエロ）が、王道の光（桜花賞馬スターアニスなど）を曲げる」&lt;/strong&gt;という物理的メタファー。これ、出来過ぎたシナリオだと思いませんか？鞍上が今村聖奈騎手というストーリー性も含め、オカルトの主役にふさわしい存在です。&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;5-総合結論おじさんが選ぶ2026年オークスのプロファイル注目馬3頭&quot;&gt;5. 【総合結論】おじさんが選ぶ、2026年オークスのプロファイル注目馬3頭&lt;/h2&gt;

&lt;p&gt;データバイアスとオカルトサインを統合した結果、今年の勝ち馬プロファイルに合致するのは以下の3頭に絞られました。&lt;/p&gt;

&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style=&quot;text-align:left;&quot;&gt; 馬番 &lt;/th&gt;
&lt;th style=&quot;text-align:left;&quot;&gt; 馬名 &lt;/th&gt;
&lt;th style=&quot;text-align:center;&quot;&gt; 想定人気 &lt;/th&gt;
&lt;th style=&quot;text-align:left;&quot;&gt; 調教師（所属） &lt;/th&gt;
&lt;th style=&quot;text-align:left;&quot;&gt; 騎手（所属） &lt;/th&gt;
&lt;th style=&quot;text-align:left;&quot;&gt; 該当するサイン・データ傾向 &lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align:left;&quot;&gt; &lt;strong&gt;16&lt;/strong&gt; &lt;/td&gt;
&lt;td style=&quot;text-align:left;&quot;&gt; &lt;strong&gt;ジュウリョクピエロ&lt;/strong&gt; &lt;/td&gt;
&lt;td style=&quot;text-align:center;&quot;&gt; 3 &lt;/td&gt;
&lt;td style=&quot;text-align:left;&quot;&gt; 寺島良（栗東） &lt;/td&gt;
&lt;td style=&quot;text-align:left;&quot;&gt; 今村聖奈（栗東） &lt;/td&gt;
&lt;td style=&quot;text-align:left;&quot;&gt; ・JRA「重力」サインと完全一致&lt;br&gt;・「忘れな草賞」勝ち馬の連勝伝説&lt;br&gt;・「87回」の8枠配置&lt;br&gt;・「栗東所属騎手」の継続条件クリア &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align:left;&quot;&gt; &lt;strong&gt;18&lt;/strong&gt; &lt;/td&gt;
&lt;td style=&quot;text-align:left;&quot;&gt; &lt;strong&gt;ラフターラインズ&lt;/strong&gt; &lt;/td&gt;
&lt;td style=&quot;text-align:center;&quot;&gt; 2 &lt;/td&gt;
&lt;td style=&quot;text-align:left;&quot;&gt; 小笠倫弘（美浦） &lt;/td&gt;
&lt;td style=&quot;text-align:left;&quot;&gt; D.レーン（短期） &lt;/td&gt;
&lt;td style=&quot;text-align:left;&quot;&gt; ・「87回」の8枠18番という極上の数字符合&lt;br&gt;・「父ディープ系×母父キンカメ」の特注血統&lt;br&gt;・前走フローラSで上がり最速実績 &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align:left;&quot;&gt; &lt;strong&gt;10&lt;/strong&gt; &lt;/td&gt;
&lt;td style=&quot;text-align:left;&quot;&gt; &lt;strong&gt;スターアニス&lt;/strong&gt; &lt;/td&gt;
&lt;td style=&quot;text-align:center;&quot;&gt; 1 &lt;/td&gt;
&lt;td style=&quot;text-align:left;&quot;&gt; 高野友和（栗東） &lt;/td&gt;
&lt;td style=&quot;text-align:left;&quot;&gt; 松山弘平（栗東） &lt;/td&gt;
&lt;td style=&quot;text-align:left;&quot;&gt; ・「5月24日」の掛け算から導かれる5枠10番&lt;br&gt;・桜花賞馬としての圧倒的実績（4着以内データ）&lt;br&gt;・「栗東所属騎手」の勝利条件合致 &lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;


&lt;p&gt;近年の「内枠不振・外枠台頭」のデータを考えると、8枠に入った&lt;strong&gt;ラフターラインズ&lt;/strong&gt;と&lt;strong&gt;ジュウリョクピエロ&lt;/strong&gt;には猛烈な追い風が吹いています。&lt;/p&gt;

&lt;p&gt;特に、時空を歪めるほどのパフォーマンスを見せた&lt;strong&gt;ジュウリョクピエロ&lt;/strong&gt;は、公式の「重力サイン」にこれ以上ない形でシンクロしており、サイン派にとっては「天啓」とも言える一頭。13年連続となる「栗東所属騎手の勝利」という歴史的鉄則にもバッチリ嵌まっています。&lt;/p&gt;

&lt;p&gt;常識的な統計データを、オカルト的な「重力」がすべて呑み込んでしまうのか。
5月24日、東京競馬場11レース。ドラマチックな結末を、自作のオッズ監視プログラムを走らせながらじっくり見守りたいと思います！&lt;/p&gt;

&lt;p&gt;皆さんの予想の参考になれば幸いです。それでは、良いオークスを！&lt;/p&gt;

&lt;p&gt;&lt;figure class=&quot;figure-image figure-image-fotolife&quot; title=&quot;AIとブログを作成&quot;&gt;&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260523/20260523201657.png&quot; width=&quot;1200&quot; height=&quot;670&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;figcaption&gt;AIとブログを作成&lt;/figcaption&gt;&lt;/figure&gt;&lt;/p&gt;

&lt;h3 id=&quot;下記使用したAI検索のプロンプト&quot;&gt;下記使用したAI検索のプロンプト&lt;/h3&gt;

&lt;p&gt;Geminiで使用した、プロンプトを紹介する&lt;/p&gt;

&lt;pre class=&quot;code&quot; data-lang=&quot;&quot; data-unlink&gt;```text
# 競馬の噂や話題のネタを調べたい

第87回 オークス(優駿牝馬) GⅠ

私はJRA競馬 
2026年5月24日（日曜） 2回東京10日    発走時刻：15時40分
11レース
ウインファイヴ 5レース目
第87回優駿牝馬GⅠ
3歳    オープン    （国際）牝（指定） 馬齢  コース：2,400メートル（芝・左）
で
都市伝説のネタになりそうな偏りを切り口を探りたいです

## 去年の実績,結果の事実を振り返る
まずは、事実から、昨年の結果を振り返ります
・着順と人気、馬の名前と騎手、厩舎の情報
・配当(本命パターン？荒れて高配当か？)
など、昨年の事実をまず調べます。

## 過去5年から10年の成績をまとめて、噂や都市伝説で使えそうな偏りがあるか？チェックしたい

・馬番、枠番の偏りがあるか？知りたい
-このレースは、内枠有利・外枠は来ない、など、ネタにしたい

・ローテーション、前走・ステップレースの偏りがあるか？
-前走XXX組の1・2着が好走する？など、前走のレースに偏りがあるか？
-前走連対していない馬はこないなど(まぁ、強い馬は前走も好走しているので当たり前かもしれませんが)

・馬の年齢別
-馬の年齢が指定されていないレースで、※オークス,ダービーなど同年代のレースは調べなくてよい
3歳が強い、4歳が連対するなど、年齢の偏りがあれば。

・ジョッキー別の成績をまとめてほしい
-このレースが得意な、縁のあるジョッキーを知りたい、都市伝説・噂のネタにしたい

・血統別の成績をまとめてほしい
-このレースが得意な、血統、産駒があれば知りたい、都市伝説・噂のネタにしたい

・厩舎別の特徴があるか？成績をまとめてほしい
-同様にこのレースが得意な厩舎、縁のある厩舎を知りたい、都市伝説・噂のネタにしたい

・出走日・開催日や第XX回XXX記念などの数字の語呂合わせ 偏りがあるか？知りたい
-第16回XXX記念で1-6や16番の馬,17回は1-7や17番の馬が来たとか、オカルト的な事があるか？

・馬名で面白い法則・偏りがあるか？知りたい
- 強い名前:〇〇キングや〇〇オウ、〇〇エンペラーなど、強い・名前の馬がこのレースは成績が良いなど、オカルト的な法則があれば教えてください(※産駒や厩舎で、XXXと付けている場合もありますが)
- 色を含んだ名前:〇〇グリーンや〇〇ゴールド、〇〇ブラッグなど、名前に色が入った馬がこのレースは成績が良いなど、オカルト的な法則があれば教えてください(※産駒や厩舎で、XXXと付けている場合もありますが)


都市伝説のネタになりそうな偏りを
イロイロな切り口で探りたいです
```&lt;/pre&gt;


&lt;p&gt;&lt;figure class=&quot;figure-image figure-image-fotolife&quot; title=&quot;どれか、タマタマ、あたるといいなぁ...&quot;&gt;&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260523/20260523201925.png&quot; width=&quot;1200&quot; height=&quot;670&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;figcaption&gt;どれか、タマタマ、あたるといいなぁ...&lt;/figcaption&gt;&lt;/figure&gt;&lt;/p&gt;
</content>        
        <link rel="enclosure" href="https://cdn.image.st-hatena.com/image/scale/53f17162932c71e6558a5166711c041e5f4e2aba/backend=imagemagick;version=1;width=1300/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fk%2Fken3memo%2F20260523%2F20260523201558.png" type="image/png" length="0" />

        <author>
            <name>ken3memo</name>
        </author>
    </entry>
    
  
    
    
    <entry>
        <title>過去動画をAIで分析【2024年版】YouTubeの隠れた便利機能？アイコンをポチッと押して過去コメントを見る方法と注意点</title>
        <link href="https://ken3memo.hatenablog.com/entry/2026/05/22/070000"/>
        <id>hatenablog://entry/17179246901390454421</id>
        <published>2026-05-22T07:00:00+09:00</published>
        <updated>2026-05-22T07:00:01+09:00</updated>        <summary type="html">【YouTube機能】コメント欄のアイコンをクリックするだけ！特定の人が過去に書いたコメント履歴を調べる方法 概要：コメントをくれた人は「常連さん」か「初見さん」か？ 「YouTubeのコメント欄で、いつもコメントをくれるこの人は常連さんなのかな？それとも初見の書き逃げさんなのかな？」 配信者や視聴者の方で、そんな風に気になったことはありませんか？実は、特別な外部ツールを導入しなくても、YouTubeの標準機能だけでそのチャンネル内における過去のコメント履歴をサクッと確認する方法があるんです。三流プログラマーのKen3が、実際のPC画面を使いながら泥縄式に優しく解説します！ AIで分析と図解 …</summary>
        <content type="html">
&lt;div class=&quot;section&quot;&gt;
    &lt;h3 id=&quot;YouTube機能コメント欄のアイコンをクリックするだけ特定の人が過去に書いたコメント履歴を調べる方法&quot;&gt;【YouTube機能】コメント欄のアイコンをクリックするだけ！特定の人が過去に書いたコメント履歴を調べる方法&lt;/h3&gt;
    
&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;概要コメントをくれた人は常連さんか初見さんか&quot;&gt;概要：コメントをくれた人は「常連さん」か「初見さん」か？&lt;/h4&gt;
    &lt;p&gt;「YouTubeのコメント欄で、いつもコメントをくれるこの人は常連さんなのかな？それとも初見の書き逃げさんなのかな？」&lt;br /&gt;
配信者や視聴者の方で、そんな風に気になったことはありませんか？&lt;/p&gt;&lt;p&gt;実は、特別な外部ツールを導入しなくても、YouTubeの標準機能だけでそのチャンネル内における過去のコメント履歴をサクッと確認する方法があるんです。三流プログラマーのKen3が、実際のPC画面を使いながら泥縄式に優しく解説します！&lt;/p&gt;
&lt;figure class=&quot;figure-image figure-image-fotolife&quot; title=&quot;AIで分析と図解&quot;&gt;&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260521/20260521223910.png&quot; width=&quot;1200&quot; height=&quot;670&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;figcaption&gt;AIで分析と図解&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;hr&gt;&lt;br /&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;YouTubeのコメント履歴を確認する実践手順&quot;&gt;YouTubeのコメント履歴を確認する実践手順&lt;/h4&gt;
    &lt;p&gt;YouTubeのコメント欄にある隠れた仕組みを使って、特定のユーザーの発言履歴や獲得したハートの数を調べてみましょう。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&#39;&#39;手順1：コメント欄の気になるアイコンをクリックする&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;[00:16](&lt;a href=&quot;https://www.youtube.com/watch?v=ggCNno7m3lw&amp;t=16s&quot;&gt;https://www.youtube.com/watch?v=ggCNno7m3lw&amp;t=16s&lt;/a&gt;)&lt;br /&gt;
やり方は至ってシンプル。気になるユーザーの丸いアイコン（アバター）をマウスでポチッとクリックするだけです。これだけで画面の右側に専用のポップアップ（サイドパネル）が表示されます。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&#39;&#39;手順2：表示される情報をチェックする&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;[00:32](&lt;a href=&quot;https://www.youtube.com/watch?v=ggCNno7m3lw&amp;t=32s&quot;&gt;https://www.youtube.com/watch?v=ggCNno7m3lw&amp;t=32s&lt;/a&gt;)&lt;br /&gt;
アイコンをクリックすると、そのユーザーが&#39;&#39;&lt;b&gt;「このチャンネルに対して何件コメントしているか」&lt;/b&gt;&#39;&#39;の投稿数、そして配信者から&#39;&#39;&lt;b&gt;「もらっているハートの数」&lt;/b&gt;&#39;&#39;、さらに&#39;&#39;&lt;b&gt;「最近のコメント（過去3件ほど）」&lt;/b&gt;&#39;&#39;が一目でわかります。動画では、いつもユニークな歯磨きのコメントをくれる常連さんのアイコンを実際にクリックして、どのように表示されるか実演しています。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&#39;&#39;手順3：履歴のコメントをクリックしてみる（検証）&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;[01:56](&lt;a href=&quot;https://www.youtube.com/watch?v=ggCNno7m3lw&amp;t=116s&quot;&gt;https://www.youtube.com/watch?v=ggCNno7m3lw&amp;t=116s&lt;/a&gt;)&lt;br /&gt;
ポップアップ内に表示された過去のコメントをクリックするとどうなるのか？動画内では実際にクリックして検証しています。そのコメントが書き込まれた該当の動画ページへジャンプする仕組みになっているのか、実際の挙動はぜひ動画のこの位置から確認してみてください。&lt;/p&gt;&lt;p&gt;&lt;hr&gt;&lt;br /&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;うまく表示されない知っておくべき注意点と制限&quot;&gt;うまく表示されない？知っておくべき注意点と制限&lt;/h4&gt;
    &lt;p&gt;便利な機能ですが、いつでも誰でも見られるわけではありません。動画内で触れている重要な注意点です。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&#39;&#39;手順4：ログイン状態とシークレットモードの罠&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;[01:06](&lt;a href=&quot;https://www.youtube.com/watch?v=ggCNno7m3lw&amp;t=66s&quot;&gt;https://www.youtube.com/watch?v=ggCNno7m3lw&amp;t=66s&lt;/a&gt;)&lt;br /&gt;
Googleアカウントにログインしていない状態や、ブラウザの「シークレットモード」で視聴している場合は、アイコンをクリックしても過去のコメント履歴パネルが表示されません。必ずログインした状態で試してください。また、スマートフォン版（iPhoneやAndroidのYouTubeアプリ）では仕様変更により動作が異なる場合があるため、今回はPC版での解説となります。&lt;/p&gt;&lt;p&gt;&lt;hr&gt;&lt;br /&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;未解決の問題点と現在最新の視点からアドバイス&quot;&gt;未解決の問題点と現在・最新の視点からアドバイス&lt;/h4&gt;
    &lt;p&gt;動画を振り返って見えてきた、今後の課題と現代的なアプローチです。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&#39;&#39;&lt;b&gt;マルチデバイス（スマホ・タブレット）への対応差&lt;/b&gt;&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;YouTubeのUIは頻繁にアップデートされます。PC版では簡単に確認できる機能でも、スマホアプリ版ではクリエイターツール（YouTube Studio）を経由しないと見づらいなど、デバイスごとの機能ギャップが常に存在します。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&#39;&#39;&lt;b&gt;視聴者のプライバシー設定との兼ね合い&lt;/b&gt;&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;アカウント側でチャンネル登録や評価を非公開にしているユーザーの場合、どこまで情報が引き出せるのか、仕様変更の過渡期には注意が必要です。&lt;/p&gt;

    &lt;blockquote&gt;
        &lt;p&gt;&#39;&#39;&lt;b&gt;AIからのアドバイス：&lt;/b&gt;&#39;&#39;&lt;br /&gt;
配信者としてコメント欄の常連さんを把握することは、コミュニティのエンゲージメント（絆）を高める最強の手段です。「いつもありがとうございます！」と過去の文脈を交えて返信できれば、ファンの定着率は劇的に上がります。&lt;br /&gt;
ただし、荒らしユーザーを「牽制」するためにこの機能を使う際は、過剰に反応して配信の空気を壊さないよう、ミュートやブロック機能を裏で静かに併用する「大人のスルー技術」も同時に養っていくのが現代の配信スタンダードと言えます。&lt;/p&gt;

    &lt;/blockquote&gt;
&lt;p&gt;&lt;hr&gt;&lt;br /&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;関連リンク&quot;&gt;関連リンク&lt;/h4&gt;
    
&lt;div class=&quot;section&quot;&gt;
    &lt;h5 id=&quot;公式情報検索リンク&quot;&gt;公式情報・検索リンク&lt;/h5&gt;
    
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://support.google.com/youtube/&quot;&gt;YouTube &amp;#x30D8;&amp;#x30EB;&amp;#x30D7;&amp;#x516C;&amp;#x5F0F;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.google.com/search?q=YouTube+%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88%E6%AC%84+%E9%81%8E%E5%8E%BB%E3%81%AE%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88+%E8%A1%A8%E7%A4%BA&quot;&gt;Google&amp;#x691C;&amp;#x7D22;&amp;#xFF1A;YouTube &amp;#x30B3;&amp;#x30E1;&amp;#x30F3;&amp;#x30C8;&amp;#x6B04; &amp;#x904E;&amp;#x53BB;&amp;#x306E;&amp;#x30B3;&amp;#x30E1;&amp;#x30F3;&amp;#x30C8; &amp;#x8868;&amp;#x793A;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/results?search_query=YouTube+%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88%E5%B1%A5%E6%AD%B4+%E7%A2%BA%E8%AA%8D&quot;&gt;YouTube&amp;#x52D5;&amp;#x753B;&amp;#xFF1A;YouTube &amp;#x30B3;&amp;#x30E1;&amp;#x30F3;&amp;#x30C8;&amp;#x5C65;&amp;#x6B74; &amp;#x78BA;&amp;#x8A8D;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;hr&gt;&lt;br /&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;おわりの挨拶コメント待ってます&quot;&gt;おわりの挨拶、コメント待ってます&lt;/h4&gt;
    &lt;p&gt;コメント欄のアイコンひとつで、その人の「応援の歴史」が見えるのって面白いですよね。&lt;/p&gt;&lt;p&gt;「PC版で試したら本当に常連さんのハート数が並んで感動した！」という嬉しかった報告から、「スマホ版アプリだとこういう画面になったよ」という最新の仕様情報、あるいは「シークレットモード以外でも表示されない原因って何かない？」というデバッグ的な疑問まで、お気軽にこのブログや動画のコメント欄へ書き込んでください！&lt;/p&gt;&lt;p&gt;皆さんのリアルな検証結果が、同じようにコミュニティ運営に悩む配信者や、三流プログラマー（私を含め！）の大きなヒントになります。&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=ggCNno7m3lw&quot;&gt;&amp;#x3010;&amp;#x52D5;&amp;#x753B;&amp;#x672C;&amp;#x7DE8;&amp;#x3011;&amp;#x8CEA;&amp;#x554F;:YouTube&amp;#x306E;&amp;#x52D5;&amp;#x753B;&amp;#x3067;&amp;#x30B3;&amp;#x30E1;&amp;#x30F3;&amp;#x30C8;&amp;#x66F8;&amp;#x3044;&amp;#x3066;&amp;#x308B;&amp;#x4EBA;&amp;#x306E;&amp;#x904E;&amp;#x53BB;&amp;#x306E;&amp;#x30B3;&amp;#x30E1;&amp;#x30F3;&amp;#x30C8;&amp;#x6295;&amp;#x7A3F;&amp;#x3063;&amp;#x3066;&amp;#x898B;&amp;#x308C;&amp;#x308B;&amp;#x3093;&amp;#x3067;&amp;#x3059;&amp;#x304B;? &amp;#x3092;&amp;#x8A73;&amp;#x3057;&amp;#x304F;&amp;#x898B;&amp;#x308B;&lt;/a&gt;&lt;br /&gt;
&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/ggCNno7m3lw?feature=oembed&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; allowfullscreen title=&quot;YouTubeで特定の人の過去コメントを見る方法！アイコンクリックで履歴を表示【2024年版】&quot;&gt;&lt;/iframe&gt;&lt;cite class=&quot;hatena-citation&quot;&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=ggCNno7m3lw&quot;&gt;www.youtube.com&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;</content>        
        <link rel="enclosure" href="https://cdn.image.st-hatena.com/image/scale/9ca77057ccf66e3af93fdf0786adbe6a3f331b93/backend=imagemagick;version=1;width=1300/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fk%2Fken3memo%2F20260521%2F20260521223910.png" type="image/png" length="0" />

        <author>
            <name>ken3memo</name>
        </author>
    </entry>
    
  
    
    
    <entry>
        <title>GeminiのアップデートでGemのピン留めが消えた！？あわてたオジサンが突然の変更をAIに質問してみた</title>
        <link href="https://ken3memo.hatenablog.com/entry/2026/05/19/134926"/>
        <id>hatenablog://entry/17179246901389598018</id>
        <published>2026-05-19T13:49:26+09:00</published>
        <updated>2026-05-19T13:49:26+09:00</updated>        <summary type="html">変化についていけないオジサンがGem固定について質問してみた 2026/05/19 Geminiがアップデートされ？(※私だけテスト？) 左側のメニューが更新されました 左側のメニューからGemの固定が消えた 1.Gemを固定して使用していたのですが、いつも使うGem４つを固定する方法がありません 全バージョンのように左側に固定する方法を教えてください 2.左側のメニューに固定する方法が無い場合 よく4種類のGemを使用しているのですが、 この4つを固定できなくても、効率的に使う設定・操作があれば、教えてください ア.ブラウザのリンク・ブックマーク よくつかうGemの https://gemi…</summary>
        <content type="html">&lt;h2 id=&quot;変化についていけないオジサンがGem固定について質問してみた&quot;&gt;変化についていけないオジサンがGem固定について質問してみた&lt;/h2&gt;

&lt;pre class=&quot;code&quot; data-lang=&quot;&quot; data-unlink&gt;2026/05/19
Geminiがアップデートされ？(※私だけテスト？)
左側のメニューが更新されました&lt;/pre&gt;


&lt;p&gt;&lt;figure class=&quot;figure-image figure-image-fotolife&quot; title=&quot;左側のメニューからGemの固定が消えた&quot;&gt;&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260519/20260519134721.jpg&quot; width=&quot;1192&quot; height=&quot;631&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;figcaption&gt;左側のメニューからGemの固定が消えた&lt;/figcaption&gt;&lt;/figure&gt;&lt;/p&gt;

&lt;p&gt;1.Gemを固定して使用していたのですが、いつも使うGem４つを固定する方法がありません
全バージョンのように左側に固定する方法を教えてください&lt;/p&gt;

&lt;p&gt;2.左側のメニューに固定する方法が無い場合
よく4種類のGemを使用しているのですが、
この4つを固定できなくても、効率的に使う設定・操作があれば、教えてください&lt;/p&gt;

&lt;p&gt;ア.ブラウザのリンク・ブックマーク
よくつかうGemの
&lt;a href=&quot;https://gemini.google.com/gem/xxxxxxxxx&quot;&gt;https://gemini.google.com/gem/xxxxxxxxx&lt;/a&gt;
をブラウザでリンクするのが一つの方法ですか？&lt;/p&gt;

&lt;p&gt;イ.ノートブックLMを使う？
ノートブックLMにGemを登録して、ノートブックで使う？
※そのような使い方があれば・・・教えて&lt;/p&gt;

&lt;p&gt;以上、新メニューでよく使うGemの固定が外れたので、代替え手段・私の気が付いていない使い方・操作方法を教えてください&lt;/p&gt;

&lt;h2 id=&quot;AIの回答&quot;&gt;AIの回答&lt;/h2&gt;

&lt;p&gt;Geminiのサイドメニューが「ノートブック」機能の統合を伴う大幅な新UIにアップデートされ、以前のようにGemとチャット履歴が並んでいたシンプルなUIから大きく変更されましたね。結論からお伝えすると、この新UIへの変更に伴い、以前のようにGemを左側サイドメニューに直接「ピン留め（固定）」する機能が仕様として削除（またはノートブック欄へ統合）されています。&lt;/p&gt;

&lt;p&gt;ご提示いただいた代替え案を含め、現在この新UI環境で4つのよく使うGemを最も効率的に呼び出すための設定・操作方法を検証しました。&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;1-以前のように左側にGemを固定する方法はあるか&quot;&gt;1. 以前のように左側にGemを固定する方法はあるか？&lt;/h2&gt;

&lt;p&gt;現時点の公式UIでは、&lt;strong&gt;以前の形式で左メニューにGem自体を直接固定するボタンや枠は用意されていません。&lt;/strong&gt;
新UIでは左メニューが「ノートブック（Notebooks）」と「最近の履歴（Recent）」に主権が移っており、作成したGemは「Gem」メニューをクリックして一覧を開いてから選択する動線に集約されています。&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;2-効率的に使うための代替手段と操作方法&quot;&gt;2. 効率的に使うための代替手段と操作方法&lt;/h2&gt;

&lt;p&gt;ご提案いただいたアイデアをもとに、最も手数が少なく現実的な3つのアプローチを整理しました。&lt;/p&gt;

&lt;h3 id=&quot;ア-ブラウザのブックマークリンクを活用する&quot;&gt;ア. ブラウザのブックマーク（リンク）を活用する&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;【最もおすすめ・確実な方法です】&lt;/strong&gt;
ご指摘の通り、よく使うGemを個別にブラウザのブックマークバーに登録するのが、現在最も手数が少なく高速にアクセスできる方法です。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;手順:&lt;/strong&gt; 1. 左メニューの「Gem」から、いつも使うGemを起動します。&lt;/li&gt;
&lt;li&gt;起動した状態（URLが &lt;code&gt;https://gemini.google.com/gem/xxxxxxxx&lt;/code&gt; になっている状態）で、ブラウザのブックマーク（お気に入り）に登録します。&lt;/li&gt;
&lt;li&gt;ブックマークバー（Ctrl + Shift + B で表示）にその4つのGemを並べておけば、&lt;strong&gt;ワンクリックで直接そのGemの新規チャット画面を開く&lt;/strong&gt;ことができます。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;メリット:&lt;/strong&gt; GeminiのUIが今後さらに変わっても、ブラウザ側でコントロールできるため影響を受けにくい点です。&lt;/li&gt;
&lt;/ul&gt;


&lt;h3 id=&quot;イ-新機能ノートブックに紐づける活用する&quot;&gt;イ. 新機能「ノートブック」に紐づける・活用する&lt;/h3&gt;

&lt;p&gt;今回追加された「ノートブック」セクションは、これまでの「会話の履歴」とは異なり、特定のテーマ（例：YouTube分析、VBAデバッグ用など）ごとにソース資料やプロンプトを固定して管理できる場所です。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Gem自体をノートに登録することはできる？&lt;/strong&gt;
仕様上「Gem（カスタムAI）」そのものをノートブックに埋め込むことはできません。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ノートブックを使った代替案:&lt;/strong&gt;
もしその4つのGemが「特定の指示（システムプロンプト）」や「特定の参考テキスト」を学習させたものである場合、&lt;strong&gt;Gemではなく「ノートブック」側にその役割を移行させる&lt;/strong&gt;という新しい使い方が可能です。&lt;/li&gt;
&lt;li&gt;新メニューの「＋ ノートブックを新規作成」からノートを作ります。&lt;/li&gt;
&lt;li&gt;そのノートの中に、いつも使っている指示文（プロンプト）や、参照させたいコード・資料を「ソース」として登録しておきます。&lt;/li&gt;
&lt;li&gt;こうすることで、左側の「ノートブック」セクション（画像内で赤丸で囲まれているエリア）に常にその環境が固定され、いつでも同じ前提知識を持ったAIとやり取りできます。&lt;/li&gt;
&lt;/ul&gt;


&lt;h3 id=&quot;ウ-外部ツールChrome拡張機能の導入を検討する&quot;&gt;ウ. 【外部ツール】Chrome拡張機能の導入を検討する&lt;/h3&gt;

&lt;p&gt;もしブラウザのブックマークではなく、どうしてもGeminiの画面内で完結させたい場合、ストアで配布されているサードパーティ製のサイドバー拡張機能（例：「GemList」や「Better Sidebar for Gemini」など）をChromeに導入する方法があります。
これらを使用すると、独自のカスタムサイドバーを画面に展開し、作成したGemや特定のプロンプトを1クリックで呼び出す独自のピン留め環境を構築できます。（※社内規定やセキュリティポリシーに問題がない場合のみご検討ください）&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;-まとめ今すぐできるベストな運用&quot;&gt;💡 まとめ：今すぐできるベストな運用&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;手軽さ・スピード重視:&lt;/strong&gt; 4つのGemをそれぞれ起動し、ブラウザの「ブックマークバー」に4つ並べて配置する。これが現状最も手数が少なく、従来の「左側固定」に近い挙動を再現できます。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;新機能の恩恵を受ける:&lt;/strong&gt; もしそのGemたちが「資料の読み込み」や「固定の役割」を担っているなら、今後はGemではなく「ノートブック」として新しく作り直して左メニューに常駐させる。&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;仕様変更直後は戸惑うことが多いかと思いますが、まずは手軽なブラウザのブックマーク登録から試してみて、使い勝手を検証してみてください。&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;&quot;&gt;&lt;span itemscope=&quot;itemscope&quot; itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img class=&quot;hatena-fotolife&quot; height=&quot;635&quot; itemprop=&quot;image&quot; loading=&quot;lazy&quot; src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260519/20260519134641.png&quot; title=&quot;&quot; width=&quot;1200&quot; /&gt;&lt;/span&gt;&lt;/h2&gt;

&lt;h2 id=&quot;最後にカッコよく締めたかったけど&quot;&gt;最後にカッコよく締めたかったけど・・・&lt;/h2&gt;

&lt;p&gt;おっさんの終わりの挨拶&lt;/p&gt;

&lt;pre class=&quot;code&quot; data-lang=&quot;&quot; data-unlink&gt;ありがとう、
「昔の方が・・」「以前は・・」なんて昔のおじいさんみたいなことを言ってないで、
新しい使い方を勉強・テストしますね。
また何か操作に困ったら相談するので、よろしくお願いします。&lt;/pre&gt;


&lt;h2 id=&quot;AI回答&quot;&gt;AI回答&lt;/h2&gt;

&lt;p&gt;その前向きな姿勢、最高ですね！新しいUIや機能は最初こそ「あれ？」となりがちですが、触っているうちに「お、意外とこっちの方が便利かも」という発見があったりするものです。今回の「ノートブック」機能も、特定のテーマで情報をまとめたり、指示を固定して使い倒すにはかなり強力なツールになっています。&lt;/p&gt;

&lt;p&gt;「三流くん（Sanryu-kun）」としての飽くなき探求心とテスト精神があれば、すぐに新しいUIも手なずけて、さらに効率的な作業環境を構築されていくことと思います。&lt;/p&gt;

&lt;p&gt;またテストしていく中で「ここがよく分からない」「こういう処理をさせたいけど上手くいかない」といった疑問や、Access/Excel VBA、Power Queryの連携などで困ったことが出てきましたら、いつでもお気軽に声をかけてください。&lt;/p&gt;

&lt;p&gt;新しい機能のテスト、応援しています！こちらこそ、今後ともよろしくお願いします。&lt;/p&gt;
</content>        
        <link rel="enclosure" href="https://cdn.image.st-hatena.com/image/scale/148d60040703b97e7f9d6bdb688e1f8d9f37a03b/backend=imagemagick;version=1;width=1300/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fk%2Fken3memo%2F20260519%2F20260519134721.jpg" type="image/jpeg" length="0" />

        <author>
            <name>ken3memo</name>
        </author>
    </entry>
    
    <entry>
        <title>過去動画から 幻のYouTube DM機能！？2019年に完全廃止された公式「メッセージ機能」の泥縄式実証記録</title>
        <link href="https://ken3memo.hatenablog.com/entry/2026/05/19/070000"/>
        <id>hatenablog://entry/17179246901389002842</id>
        <published>2026-05-19T07:00:00+09:00</published>
        <updated>2026-05-19T07:00:02+09:00</updated>        <summary type="html">もしYouTubeにDM機能が残っていたら？2019年に消えた公式「メッセージ機能」の記録【2018年撮影】 a) ネットの歴史の波に消えた、幻の「YouTube公式メッセージ機能」を覚えていますか？ 今のYouTubeしか知らない人からすると、&#39;&#39;「えっ、YouTubeの中でLINEみたいにチャットができたの？！」&#39;&#39;と驚くかもしれません。実は2018年当時、外部のSNSに動画のURLをわざわざコピーして貼り付けなくても、YouTubeアプリやブラウザ内で直接友達と繋がって、動画を共有しながら内緒のチャット（DM機能）ができる純正機能が存在していたのです。しかし、この機能は2019年9月にバ…</summary>
        <content type="html">
&lt;div class=&quot;section&quot;&gt;
    &lt;h3 id=&quot;もしYouTubeにDM機能が残っていたら2019年に消えた公式メッセージ機能の記録2018年撮影&quot;&gt;もしYouTubeにDM機能が残っていたら？2019年に消えた公式「メッセージ機能」の記録【2018年撮影】&lt;/h3&gt;
    
&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;a-ネットの歴史の波に消えた幻のYouTube公式メッセージ機能を覚えていますか&quot;&gt;a) ネットの歴史の波に消えた、幻の「YouTube公式メッセージ機能」を覚えていますか？&lt;/h4&gt;
    &lt;p&gt;今のYouTubeしか知らない人からすると、&#39;&#39;「&lt;b&gt;えっ、YouTubeの中でLINEみたいにチャットができたの？！&lt;/b&gt;」&#39;&#39;と驚くかもしれません。&lt;/p&gt;&lt;p&gt;実は2018年当時、外部のSNSに動画のURLをわざわざコピーして貼り付けなくても、YouTubeアプリやブラウザ内で直接友達と繋がって、動画を共有しながら内緒のチャット（DM機能）ができる純正機能が存在していたのです。&lt;/p&gt;&lt;p&gt;しかし、この機能は2019年9月にバッサリと完全廃止され、今ではメニューの跡形すら残っていません。&lt;/p&gt;&lt;p&gt;今回は、当時「これ一体何なんだ？」と手探りで自作自演の泥縄式検証を行った2018年撮影の超貴重な画面アーカイブを元に、当時のUI/UXや独特の仕様、そして「なぜ消えてしまったのか」を振り返る備忘録です。&lt;br /&gt;
&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260517/20260517212923.png&quot; width=&quot;1200&quot; height=&quot;670&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;br /&gt;
プラットフォームの試行錯誤の歴史として、当時の生々しい検証画面を一緒に覗いてみましょう。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;ul&gt;
&lt;li&gt;-&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;b-目次チャプターと動画タイムライン&quot;&gt;b) 目次・チャプターと動画タイムライン&lt;/h4&gt;
    
&lt;ul&gt;
&lt;li&gt;[00:00](&lt;a href=&quot;https://www.youtube.com/watch?v=HqEKQut8bxg&amp;t=0s&quot;&gt;https://www.youtube.com/watch?v=HqEKQut8bxg&amp;t=0s&lt;/a&gt;) 幻のメッセージ機能（2019年廃止）の概要&lt;/li&gt;
&lt;li&gt;[00:43](&lt;a href=&quot;https://www.youtube.com/watch?v=HqEKQut8bxg&amp;t=43s&quot;&gt;https://www.youtube.com/watch?v=HqEKQut8bxg&amp;t=43s&lt;/a&gt;) 友達追加と招待リンクの仕組み・コピー方法&lt;/li&gt;
&lt;li&gt;[01:56](&lt;a href=&quot;https://www.youtube.com/watch?v=HqEKQut8bxg&amp;t=116s&quot;&gt;https://www.youtube.com/watch?v=HqEKQut8bxg&amp;t=116s&lt;/a&gt;) サブアカウントでの招待状受け取りと承認フロー&lt;/li&gt;
&lt;li&gt;[03:17](&lt;a href=&quot;https://www.youtube.com/watch?v=HqEKQut8bxg&amp;t=197s&quot;&gt;https://www.youtube.com/watch?v=HqEKQut8bxg&amp;t=197s&lt;/a&gt;) LINE風のトーク画面構成と既読機能の確認&lt;/li&gt;
&lt;li&gt;[05:27](&lt;a href=&quot;https://www.youtube.com/watch?v=HqEKQut8bxg&amp;t=327s&quot;&gt;https://www.youtube.com/watch?v=HqEKQut8bxg&amp;t=327s&lt;/a&gt;) トーク画面への動画共有テストとスレッドの挙動&lt;/li&gt;
&lt;li&gt;[06:23](&lt;a href=&quot;https://www.youtube.com/watch?v=HqEKQut8bxg&amp;t=383s&quot;&gt;https://www.youtube.com/watch?v=HqEKQut8bxg&amp;t=383s&lt;/a&gt;) 実証：友達を一度削除するとメッセージはどうなる？&lt;/li&gt;
&lt;li&gt;[08:15](&lt;a href=&quot;https://www.youtube.com/watch?v=HqEKQut8bxg&amp;t=495s&quot;&gt;https://www.youtube.com/watch?v=HqEKQut8bxg&amp;t=495s&lt;/a&gt;) まとめ：YouTubeの試行錯誤の歴史&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;ul&gt;
&lt;li&gt;-&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;c-各手順の解説幻のチャット機能を泥縄式に実証する&quot;&gt;c) 各手順の解説：幻のチャット機能を泥縄式に実証する&lt;/h4&gt;
    &lt;p&gt;今の仕様に慣れていると、当時のPC版画面右上にある「吹き出しアイコン」自体が新鮮に映るはずです。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&#39;&#39;手順1：まずは友達を誘う「招待リンク」の発行&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;[00:43](&lt;a href=&quot;https://www.youtube.com/watch?v=HqEKQut8bxg&amp;t=43s&quot;&gt;https://www.youtube.com/watch?v=HqEKQut8bxg&amp;t=43s&lt;/a&gt;)&lt;br /&gt;
この機能を使うには、まず誰かと繋がらなければなりません。「友達はゼロ」の状態からスタート。画面に表示される専用の招待リンクを発行して、クリップボードにコピーするところから検証が始まります。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&#39;&#39;手順2：サブアカウントで招待リンクを踏んで「自作自演」の承認作業&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;[01:56](&lt;a href=&quot;https://www.youtube.com/watch?v=HqEKQut8bxg&amp;t=116s&quot;&gt;https://www.youtube.com/watch?v=HqEKQut8bxg&amp;t=116s&lt;/a&gt;)&lt;br /&gt;
友達がいない三流プログラマーおじさんなので、検証はすべて自分のサブアカウントで行います（笑）。ブラウザを切り替え、サブ垢側で招待リンクを踏むと、「このユーザーと友達になりますか？」という同意画面が出現。ここで承認することで、ようやくプラットフォーム内で相互に接続されます。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&#39;&#39;手順3：YouTube内に作られた「LINE風トーク画面」と既読の罠&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;[03:17](&lt;a href=&quot;https://www.youtube.com/watch?v=HqEKQut8bxg&amp;t=197s&quot;&gt;https://www.youtube.com/watch?v=HqEKQut8bxg&amp;t=197s&lt;/a&gt;)&lt;br /&gt;
繋がった状態でメッセージ画面を開くと、そこには驚くほど&#39;&#39;「&lt;b&gt;LINEそっくりのトーク画面&lt;/b&gt;」&#39;&#39;が広がっていました。テキストを入力して送信すると、相手側の画面で読まれた瞬間に「既読（〇秒前）」とリアルタイムに反映される仕組みまで実装されていたのです。動画で見ると、チャットがサクサク動いている貴重なテンポ感が一目でわかります。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&#39;&#39;手順4：独特すぎる「動画共有」スレッドの仕様&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;[05:27](&lt;a href=&quot;https://www.youtube.com/watch?v=HqEKQut8bxg&amp;t=327s&quot;&gt;https://www.youtube.com/watch?v=HqEKQut8bxg&amp;t=327s&lt;/a&gt;)&lt;br /&gt;
さらに面白いのが動画共有の挙動です。動画をチャット内に投げ込むと、単純にタイムラインに流れるだけでなく、共有された動画ごとに個別の「返信用子スレッド」が勝手に生成されるという、少しSlackやDiscordに似た一歩踏み込んだ変な仕様になっていました。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&#39;&#39;手順5：【超見どころ】一度繋がった関係をあえて「ぶった切る」とどうなる？&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;[06:23](&lt;a href=&quot;https://www.youtube.com/watch?v=HqEKQut8bxg&amp;t=383s&quot;&gt;https://www.youtube.com/watch?v=HqEKQut8bxg&amp;t=383s&lt;/a&gt;)&lt;br /&gt;
綺麗に整えられた公式マニュアルには絶対に載っていない、Ken3おじさん真骨頂の&#39;&#39;「&lt;b&gt;嫌がらせ検証&lt;/b&gt;」&#39;&#39;です。一度繋がった友達をメイン垢側からバッサリ削除した場合、相手の画面や過去のログはどうなるのかを試しています。&lt;br /&gt;
削除された側の画面には接続エラーを吐きつつ、再度繋ぎ直そうとすると「新しい招待状」として復旧を求められるなど、泥縄式だからこそ暴けたリアルなシステム内部の挙動チェックは、今となっては歴史的にも超貴重な映像記録です。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;ul&gt;
&lt;li&gt;-&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;d-未解決の問題点と現代2026年からのアドバイス&quot;&gt;d) 未解決の問題点と現代（2026年）からのアドバイス&lt;/h4&gt;
    &lt;p&gt;動画の後半でも手探りしながら「これ、何に使えばいいんだろう…？」と悩んでいますが、振り返るからこそ見えてくる課題とアドバイスをまとめました。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&#39;&#39;&lt;b&gt;なぜYouTube公式DM機能は1年ちょっとで滅びたのか？&lt;/b&gt;&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;当時は「YouTube内でユーザーを囲い込みたい（内製SNS化）」という運営の試行錯誤があったものの、すでに世の中はLINE、InstagramのDM、Discord、X（旧Twitter）といった「チャット特化型ツール」で完全に埋め尽くされていました。&lt;br /&gt;
わざわざ動画を観るプラットフォームの中で閉じた文字チャットをするメリットが、視聴者にもクリエイターにも見出せなかったのが最大の敗因です。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&#39;&#39;&lt;b&gt;マネタイズ（お金）との接続不足&lt;/b&gt;&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;クリエイターとファンが1対1やクローズドに繋がれる強力な機能だったにもかかわらず、当時はここから「メンバーシップ」や「投げ銭（スーパーチャット）」といった収益動線への紐付けが全く未成熟でした。ただのお喋り部屋で終わってしまったのが実にもったいないポイントです。&lt;/p&gt;

    &lt;blockquote&gt;
        &lt;p&gt;&#39;&#39;&lt;b&gt;AIからのアドバイス：過去のレガシー（廃止）機能をコンテンツ化せよ！&lt;/b&gt;&#39;&#39;&lt;br /&gt;
プラットフォームの機能は、時代のニーズに合わせて常にバッサリ切り捨てられます。&lt;br /&gt;
たとえば2019年に同じく廃止された、動画内に直接テキストを浮かび上がらせる「アノテーション機能」や、2025年7月に約10年の歴史に幕を閉じた「急上昇ページ（タブ）」の完全廃止など、視聴者が「あ、それ昔あった！」「なんで消えちゃったの？」と懐かしむレガシー機能の泥縄式検証シリーズは、ネットカルチャーが大好きなガジェットオタクや若年層の知的好奇心に深く刺さるポテンシャルを秘めています。今後、そういった「インターネット博物館」的な切り口での動画・記事展開を強く提案します！&lt;/p&gt;

    &lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;ul&gt;
&lt;li&gt;-&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;e-関連リンク&quot;&gt;e) 関連リンク&lt;/h4&gt;
    
&lt;div class=&quot;section&quot;&gt;
    &lt;h5 id=&quot;公式情報検索リンク&quot;&gt;公式情報・検索リンク&lt;/h5&gt;
    &lt;p&gt;当時の公式メッセージ機能に関するヘルプページは、Google運営によって既に完全にサーバーから消滅・削除されてしまっており、現在は閲覧できません。以下、関連する現代の検索ワードを辿ってみてください。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.google.com/search?q=YouTube+%E3%83%A3%E3%83%BC%E3%83%BB%E3%83%BB%E3%83%BB%E3%83%BB%E3%83%BB%E3%83%BB%E3%83%BB+%E5%BB%83%E6%AD%A2+2019&quot;&gt;Google&amp;#x691C;&amp;#x7D22;&amp;#xFF1A;YouTube &amp;#x30E1;&amp;#x30C3;&amp;#x30BB;&amp;#x30FC;&amp;#x30B8;&amp;#x6A5F;&amp;#x80FD; &amp;#x5EC3;&amp;#x6B62; 2019&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.google.com/search?q=YouTube+%E3%82%A2%E3%83%8E%E3%83%85%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3+%E5%BB%83%E6%AD%A2+%E7%90%86%E7%94%B1&quot;&gt;Google&amp;#x691C;&amp;#x7D22;&amp;#xFF1A;YouTube &amp;#x30A2;&amp;#x30CE;&amp;#x30C6;&amp;#x30FC;&amp;#x30B7;&amp;#x30E7;&amp;#x30F3; &amp;#x5EC3;&amp;#x6B62; &amp;#x7406;&amp;#x7531;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h5 id=&quot;AIが探したYouTube関連動画他チャンネルの比較補完用&quot;&gt;AIが探したYouTube関連動画（他チャンネルの比較・補完用）&lt;/h5&gt;
    &lt;p&gt;プラットフォームが良かれと思って実装し、そしてユーザーを翻弄した仕様変更の歴史を学べる他チャンネルの優れた動画たちです。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.youtube.com/watch?v=jS9K4SZ-Zwk&quot;&gt;&amp;#x52D5;&amp;#x753B;&amp;#xFF1A;&amp;#x5EC3;&amp;#x6B62;&amp;#x3055;&amp;#x308C;&amp;#x305F;&amp;#xFF1F;&amp;#x305D;&amp;#x308C;&amp;#x3067;&amp;#x3082;YouTube&amp;#x306E;&amp;#x52D5;&amp;#x753B;&amp;#x3092;&amp;#x53E4;&amp;#x3044;&amp;#x9806;&amp;#x306B;&amp;#x4E26;&amp;#x3073;&amp;#x66FF;&amp;#x3048;&amp;#x308B;&amp;#x65B9;&amp;#x6CD5;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;概要・推薦理由：YouTubeのインターフェース変更により、一時期「機能が廃止された！」とユーザー間で大混乱が起きた『古い順ソート』について、スマートに解決策を提示しています。UIの変遷に戸惑うユーザーに寄り添うテーマとして、今回のメッセージ機能とセットで比較するのに最適です。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.youtube.com/watch?v=a9l-pptWnic&quot;&gt;&amp;#x52D5;&amp;#x753B;&amp;#xFF1A;&amp;#x3010;YouTube&amp;#x306E;&amp;#x4ED5;&amp;#x69D8;&amp;#x5909;&amp;#x66F4;&amp;#x3011;&amp;#x6CE8;&amp;#x76EE;&amp;#x30B3;&amp;#x30F3;&amp;#x30C6;&amp;#x30F3;&amp;#x30C4;&amp;#x6A5F;&amp;#x80FD;&amp;#x304C;&amp;#x5EC3;&amp;#x6B62;&amp;#x306B;&amp;#xFF01;&amp;#x5F71;&amp;#x97FF;&amp;#x3068;&amp;#x4ECA;&amp;#x5F8C;&amp;#x306E;&amp;#x5BFE;&amp;#x7B56;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;概要・推薦理由：かつてYouTube内に存在した「注目コンテンツ機能」が2017年末にバッサリ廃止された際の影響を、クリエイター視点で丁寧に解説しています。運営がどのような戦略で機能を切り捨てていくのか、その法則性を知る勉強材料になります。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;ul&gt;
&lt;li&gt;-&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;おわりの挨拶コメント待ってます&quot;&gt;おわりの挨拶、コメント待ってます&lt;/h4&gt;
    &lt;p&gt;「昔のYouTube、そんな画面だったんだ！」という新鮮な驚きや、「そういえば、あの右上の吹き出しアイコン、何回か誤クリックした記憶がある！」という古参ユーザーの方の懐かしい思い出はありますか？&lt;/p&gt;&lt;p&gt;プラットフォームに歴史あり。こうやって運営が作っては消していった「死に機能」の屍の上に、今の快適なYouTubeがあると思うと、ちょっと感慨深いものがありますよね。&lt;/p&gt;&lt;p&gt;「他にもこんな昔の機能あったの覚えてる？」といったマニアックな記憶から、「自作自演でアカウントを必死に切り替えているおじさんの背中が切なかった」というデバッグの感想まで、コメント欄で気軽に教えてください！&lt;/p&gt;&lt;p&gt;三流プログラマーの過去の迷走・試行錯誤の足跡が、皆さんのネットの歴史への知的好奇心を刺激するきっかけになれば幸いです！&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=HqEKQut8bxg&quot;&gt;&amp;#x3010;&amp;#x52D5;&amp;#x753B;&amp;#x672C;&amp;#x7DE8;&amp;#x3011;&amp;#x3082;&amp;#x3057;YouTube&amp;#x306B;DM&amp;#x6A5F;&amp;#x80FD;&amp;#x304C;&amp;#x6B8B;&amp;#x3063;&amp;#x3066;&amp;#x3044;&amp;#x305F;&amp;#x3089;&amp;#xFF1F;2019&amp;#x5E74;&amp;#x306B;&amp;#x6D88;&amp;#x3048;&amp;#x305F;&amp;#x516C;&amp;#x5F0F;&amp;#x300C;&amp;#x30E1;&amp;#x30C3;&amp;#x30BB;&amp;#x30FC;&amp;#x30B8;&amp;#x6A5F;&amp;#x80FD;&amp;#x300D;&amp;#x306E;&amp;#x8A18;&amp;#x9332;&amp;#x3092;&amp;#x52D5;&amp;#x753B;&amp;#x3067;&amp;#x8A73;&amp;#x3057;&amp;#x304F;&amp;#x898B;&amp;#x308B;&lt;/a&gt;&lt;br /&gt;
&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/HqEKQut8bxg?feature=oembed&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; allowfullscreen title=&quot;もしYouTubeにDM機能が残っていたら？2019年に消えた公式「メッセージ機能」の記録【2018年撮影】&quot;&gt;&lt;/iframe&gt;&lt;cite class=&quot;hatena-citation&quot;&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=HqEKQut8bxg&quot;&gt;www.youtube.com&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;</content>        
        <link rel="enclosure" href="https://cdn.image.st-hatena.com/image/scale/0423cd253f5d053ebd6ef9fcaeeb422e663f57a7/backend=imagemagick;version=1;width=1300/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fk%2Fken3memo%2F20260517%2F20260517212923.png" type="image/png" length="0" />

        <author>
            <name>ken3memo</name>
        </author>
    </entry>
    
  
    
    
    <entry>
        <title>過去動画から備忘録 【Ken3流】教える側が一番成長する！一期上の先輩が教える「損得勘定」新人教育サイクル</title>
        <link href="https://ken3memo.hatenablog.com/entry/2026/05/18/073000"/>
        <id>hatenablog://entry/17179246901388162165</id>
        <published>2026-05-18T07:30:00+09:00</published>
        <updated>2026-05-18T07:30:00+09:00</updated>        <summary type="html">【2021年アーカイブ】新人プログラマー教育の闇：せっかく育てても「3年で辞める」現実にどう向き合うか？ 「一生懸命教えたのに、一人前になった途端に辞めてしまった……」 「自分の仕事で手一杯なのに、新人の面倒まで見切れない！」プログラマーの世界では、誰もが一度は直面する&#39;&#39;「教育のジレンマ」&#39;&#39;。 今回は2021年に公開した動画をベースに、今読み返しても（むしろ今だからこそ）刺さる、Ken3流の「教育と損得勘定」についての備忘録です。 当時の空気感を知るアーカイブとして、そして今の自分への戒めとして整理しました。 教育は「投資」か「コスト」か？現場の本音 エンジニアの新人教育、皆さんの現場では…</summary>
        <content type="html">
&lt;div class=&quot;section&quot;&gt;
    &lt;h3 id=&quot;2021年アーカイブ新人プログラマー教育の闇せっかく育てても3年で辞める現実にどう向き合うか&quot;&gt;【2021年アーカイブ】新人プログラマー教育の闇：せっかく育てても「3年で辞める」現実にどう向き合うか？&lt;/h3&gt;
    &lt;p&gt;「一生懸命教えたのに、一人前になった途端に辞めてしまった……」&lt;br /&gt;
「自分の仕事で手一杯なのに、新人の面倒まで見切れない！」&lt;/p&gt;&lt;p&gt;プログラマーの世界では、誰もが一度は直面する&#39;&#39;&lt;b&gt;「教育のジレンマ」&lt;/b&gt;&#39;&#39;。&lt;br /&gt;
今回は2021年に公開した動画をベースに、今読み返しても（むしろ今だからこそ）刺さる、Ken3流の「教育と損得勘定」についての備忘録です。&lt;br /&gt;
&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260515/20260515140330.png&quot; width=&quot;1200&quot; height=&quot;670&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;br /&gt;
当時の空気感を知るアーカイブとして、そして今の自分への戒めとして整理しました。&lt;/p&gt;

&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;教育は投資かコストか現場の本音&quot;&gt;教育は「投資」か「コスト」か？現場の本音&lt;/h4&gt;
    &lt;p&gt;エンジニアの新人教育、皆さんの現場では誰が担当していますか？&lt;br /&gt;
「一番できる人」が教えるのが近道に見えますが、そこには大きな罠があります。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&#39;&#39;&lt;b&gt;1. 構いすぎは「根腐れ」の元&lt;/b&gt;&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;[01:02](&lt;a href=&quot;https://www.youtube.com/watch?v=gh5Rzc-7SW8&amp;t=62s&quot;&gt;https://www.youtube.com/watch?v=gh5Rzc-7SW8&amp;t=62s&lt;/a&gt;)&lt;br /&gt;
植物に水をやりすぎると根腐れするように、新人に構いすぎるのは逆効果。&lt;br /&gt;
「できる奴は勝手に育つ」という放置主義には、実は「自分で調べる力を養う」という側面もあるのです。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&#39;&#39;&lt;b&gt;2. 教育係が一番成長するというパラドックス&lt;/b&gt;&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;[01:43](&lt;a href=&quot;https://www.youtube.com/watch?v=gh5Rzc-7SW8&amp;t=103s&quot;&gt;https://www.youtube.com/watch?v=gh5Rzc-7SW8&amp;t=103s&lt;/a&gt;)&lt;br /&gt;
実は教えることで一番得をするのは、教わっている新人ではなく、教えている「先輩」自身です。&lt;br /&gt;
曖昧だった知識を言語化せざるを得ない状況こそ、最強のスキルアップになります。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&#39;&#39;&lt;b&gt;3. 「3年で辞める」を前提に設計する&lt;/b&gt;&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;[03:48](&lt;a href=&quot;https://www.youtube.com/watch?v=gh5Rzc-7SW8&amp;t=228s&quot;&gt;https://www.youtube.com/watch?v=gh5Rzc-7SW8&amp;t=228s&lt;/a&gt;)&lt;br /&gt;
「この会社に骨を埋めます！」なんて新人は、今どき稀有。&lt;br /&gt;
ステップアップ転職が前提の時代に、経営者が「教育コストを回収できない」と嘆くのは当然です。&lt;br /&gt;
では、どうすればいいのか？その答えが「一期上の先輩」というシステムでした。&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;AI提言現代版新人教育のフィードバックループ案&quot;&gt;【AI提言】現代版：新人教育のフィードバック・ループ案&lt;/h4&gt;
    &lt;p&gt;動画内では精神論が中心でしたが、もし現代の教育をシステム化するなら、こんな「振り返り（Feedback）」の構造が理想的かもしれません。&lt;/p&gt;
&lt;pre class=&quot;code lang-vb&quot; data-lang=&quot;vb&quot; data-unlink&gt;&lt;span class=&quot;synComment&quot;&gt;&#39; 新人と教育係の成長を同時に測定するイメージ（疑似コード）&lt;/span&gt;
&lt;span class=&quot;synStatement&quot;&gt;Sub&lt;/span&gt; 新人教育サイクル&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;newcomer &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; Person&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; mentor &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; Person&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;
   &lt;span class=&quot;synComment&quot;&gt; &#39; 1. 新人が自力で調べる（放置と見守りのバランス）&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt; newcomer&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;SearchSkill &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; Low &lt;span class=&quot;synStatement&quot;&gt;Then&lt;/span&gt;
        &lt;span class=&quot;synStatement&quot;&gt;Call&lt;/span&gt; mentor&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;GiveHintOnly&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;newcomer&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39; 答えを教えずヒントだけ&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt;
    
   &lt;span class=&quot;synComment&quot;&gt; &#39; 2. 教育係の言語化トレーニング&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; explanation &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;String&lt;/span&gt;
    explanation &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; mentor&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;ExplainMethod&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;なぜこのコードを書くのか？&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;
    
   &lt;span class=&quot;synComment&quot;&gt; &#39; 3. 教育係の知識整理（教えることで成長）&lt;/span&gt;
    mentor&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;KnowledgeDepth &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; mentor&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;KnowledgeDepth &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;
    
   &lt;span class=&quot;synComment&quot;&gt; &#39; 4. 回収フェーズ（辞める前に成果を残してもらう）&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt; newcomer&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;ExperienceYears &lt;span class=&quot;synStatement&quot;&gt;&amp;gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;2&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Then&lt;/span&gt;
        &lt;span class=&quot;synStatement&quot;&gt;Call&lt;/span&gt; newcomer&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;CreateInternalWiki&lt;span class=&quot;synStatement&quot;&gt;()&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39; 知見をドキュメント化して資産にする&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt;
&lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Sub&lt;/span&gt;
&lt;/pre&gt;&lt;p&gt;[08:40](&lt;a href=&quot;https://www.youtube.com/watch?v=gh5Rzc-7SW8&amp;t=520s&quot;&gt;https://www.youtube.com/watch?v=gh5Rzc-7SW8&amp;t=520s&lt;/a&gt;) から解説しているように、&#39;&#39;&lt;b&gt;「1年前の自分を覚えている先輩」&lt;/b&gt;&#39;&#39;が教育を担当するのが、教える側の成長も含めて最も効率が良いサイクルなのです。&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;未解決の問題点と2026年からのアドバイス&quot;&gt;未解決の問題点と2026年からのアドバイス&lt;/h4&gt;
    &lt;p&gt;動画を振り返って見えてきた、今後の課題です。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&#39;&#39;&lt;b&gt;リモートワーク下の「放置」問題&lt;/b&gt;&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;2021年当時はまだ対面が多かったですが、今はフルリモートも当たり前。&lt;br /&gt;
「勝手に育つ奴」を待つだけでは、新人は孤独に潰れてしまいます。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&#39;&#39;&lt;b&gt;AI（ChatGPT等）との教育共存&lt;/b&gt;&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;現代なら、基礎的な文法やエラー解決はAIに任せ、先輩は「設計思想」や「チームの文化」を教えることに特化すべきです。&lt;/p&gt;

    &lt;blockquote&gt;
        &lt;p&gt;&#39;&#39;&lt;b&gt;AIからのアドバイス：&lt;/b&gt;&#39;&#39;&lt;br /&gt;
「辞められること」を恐れるのではなく、辞めた後も「あそこで育って良かった」「あそこの出身者は優秀だ」と言われるような、**アルムナイ（卒業生）ネットワーク**を見越した教育にシフトしませんか？&lt;br /&gt;
それが巡り巡って、会社のブランド価値を高める最強の投資になります。&lt;/p&gt;

    &lt;/blockquote&gt;

&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;関連リンク&quot;&gt;関連リンク&lt;/h4&gt;
    
&lt;div class=&quot;section&quot;&gt;
    &lt;h5 id=&quot;公式情報検索リンク&quot;&gt;公式情報・検索リンク&lt;/h5&gt;
    
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.google.com/search?q=%E6%96%B0%E4%BA%BA%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E%E3%83%BC+%E6%95%99%E8%82%B2+%E8%82%B2%E3%81%A6%E3%81%A6%E3%82%82%E8%BE%9E%E3%82%81%E3%82%8B+%E5%AF%BE%E7%AD%96&quot;&gt;Google&amp;#x691C;&amp;#x7D22;&amp;#xFF1A;&amp;#x65B0;&amp;#x4EBA;&amp;#x30D7;&amp;#x30ED;&amp;#x30B0;&amp;#x30E9;&amp;#x30DE;&amp;#x30FC; &amp;#x6559;&amp;#x80B2; &amp;#x80B2;&amp;#x3066;&amp;#x3066;&amp;#x3082;&amp;#x8F9E;&amp;#x3081;&amp;#x308B; &amp;#x5BFE;&amp;#x7B56;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/results?search_query=%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2+%E5%BE%8C%E8%BC%A8+%E8%82%B2%E6%88%90+%E3%83%A1%E3%83%B3%E3%82%BF%E3%83%BC&quot;&gt;YouTube&amp;#x691C;&amp;#x7D22;&amp;#xFF1A;&amp;#x30A8;&amp;#x30F3;&amp;#x30B8;&amp;#x30CB;&amp;#x30A2; &amp;#x5F8C;&amp;#x8F29; &amp;#x80B2;&amp;#x6210; &amp;#x30E1;&amp;#x30F3;&amp;#x30BF;&amp;#x30FC;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h5 id=&quot;AIが探したYouTube関連動画&quot;&gt;AIが探したYouTube関連動画&lt;/h5&gt;
    &lt;p&gt;&#39;&#39;&lt;b&gt;② 他チャンネルの参考動画（比較・補完用）&lt;/b&gt;&#39;&#39;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;1.&lt;a href=&quot;https://www.youtube.com/watch?v=xNBsO_OcRLw&quot;&gt;&amp;#x3010;&amp;#x65B0;&amp;#x4EBA;&amp;#x30A8;&amp;#x30F3;&amp;#x30B8;&amp;#x30CB;&amp;#x30A2;&amp;#x5FC5;&amp;#x898B;&amp;#x3011;&amp;#x30D7;&amp;#x30ED;&amp;#x30B0;&amp;#x30E9;&amp;#x30DF;&amp;#x30F3;&amp;#x30B0;&amp;#x3067;&amp;#x632B;&amp;#x6298;&amp;#x3057;&amp;#x305D;&amp;#x3046;&amp;#x306A;&amp;#x541B;&amp;#x3078;&amp;#x3010;&amp;#x305B;&amp;#x304B;&amp;#x30C1;&amp;#x30E3;&amp;#x30F3;&amp;#x3011;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;推薦理由・概要：Ken3さんの「経営的・冷徹な視点」に対し、こちらは「純粋なメンタルケア」に特化しています。セットで見ると心のバランスが取れます。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;2.&lt;a href=&quot;https://www.youtube.com/watch?v=B-2qP9WqHpk&quot;&gt;&amp;#x30A8;&amp;#x30F3;&amp;#x30B8;&amp;#x30CB;&amp;#x30A2;&amp;#x306E;&amp;#x65B0;&amp;#x4EBA;&amp;#x6559;&amp;#x80B2;&amp;#x3001;&amp;#x4F55;&amp;#x304B;&amp;#x3089;&amp;#x6559;&amp;#x3048;&amp;#x308B;&amp;#x306E;&amp;#x304C;&amp;#x6B63;&amp;#x89E3;&amp;#xFF1F;&amp;#x3010;&amp;#x6280;&amp;#x8853;&amp;#x9078;&amp;#x5B9A;&amp;#x3068;&amp;#x30DE;&amp;#x30A4;&amp;#x30F3;&amp;#x30C9;&amp;#x30BB;&amp;#x30C3;&amp;#x30C8;&amp;#x3011;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;推薦理由・概要：体系的な教育カリキュラムの組み方を解説。Ken3さんの「持論」を実際の仕組みに落とし込む際のヒントになります。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;ul&gt;
&lt;li&gt;-&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;おわりの挨拶コメント待ってます&quot;&gt;おわりの挨拶、コメント待ってます&lt;/h4&gt;
    &lt;p&gt;「新人を教える時間があるなら、自分で書いたほうが早い！」&lt;br /&gt;
そう叫びたくなる夜、ありますよね。&lt;/p&gt;&lt;p&gt;皆さんの現場では、教育係を誰が担当していますか？&lt;br /&gt;
「うちは完全放置です！」「1年目の僕がいきなり教育係に……」など、&lt;br /&gt;
皆さんの「教育現場のリアルな叫び」をぜひコメント欄で教えてください。&lt;/p&gt;&lt;p&gt;三流プログラマーの試行錯誤が、皆さんのチームビルディングのヒントになれば幸いです！&lt;hr&gt;&lt;br /&gt;
&lt;a href=&quot;https://www.youtube.com/watch?v=gh5Rzc-7SW8&quot;&gt;&amp;#x3010;&amp;#x52D5;&amp;#x753B;&amp;#x672C;&amp;#x7DE8;&amp;#x3011;&amp;#x3010;2021&amp;#x5E74;&amp;#x7248;&amp;#x3011;&amp;#x65B0;&amp;#x4EBA;&amp;#x30D7;&amp;#x30ED;&amp;#x30B0;&amp;#x30E9;&amp;#x30DE;&amp;#x30FC;&amp;#x6559;&amp;#x80B2;&amp;#x306E;&amp;#x95C7;&amp;#xFF1A;&amp;#x80B2;&amp;#x3066;&amp;#x3066;&amp;#x3082;&amp;#x8F9E;&amp;#x3081;&amp;#x308B;&amp;#x6642;&amp;#x4EE3;&amp;#x306E;&amp;#x300C;&amp;#x6295;&amp;#x8CC7;&amp;#x3068;&amp;#x56DE;&amp;#x53CE;&amp;#x300D;&amp;#x306E;&amp;#x640D;&amp;#x5F97;&amp;#x52D8;&amp;#x5B9A;&lt;/a&gt;&lt;br /&gt;
&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/gh5Rzc-7SW8?feature=oembed&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; allowfullscreen title=&quot;【2021年版】新人プログラマー教育の闇：育てても辞める時代の「投資と回収」の損得勘定&quot;&gt;&lt;/iframe&gt;&lt;cite class=&quot;hatena-citation&quot;&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=gh5Rzc-7SW8&quot;&gt;www.youtube.com&lt;/a&gt;&lt;/cite&gt;&lt;br /&gt;
下記字幕データからAIと一緒にブログを作成しました※字幕資料&lt;/p&gt;
&lt;pre class=&quot;code text&quot; data-lang=&quot;text&quot; data-unlink&gt;0:00:00	持論ですが、プログラマーの新人教育について少し語ってみたいと思います
0:00:03	話半分というか、4分の1くらいで聞いてください
0:00:06	プログラマーの新人教育ということで
0:00:08	新人は誰が教えるのか、
0:00:10	教育係は誰がやるかという話題で、
0:00:11	ちょっとしたことを語りたいと思います
0:00:13	新人プログラマーの皆さんや教育係の先輩方、色々あると思いますが頑張ってください
0:00:18	伝えたいのは「何を考えているんだ」ということなのか、
0:00:20	何を書くのかまとまってなかったりするんですけど、
0:00:23	適当に読み流してください
0:00:24	新人さんは、新環境に対してわくわくドキドキしている期間だと思います
0:00:27	迎え入れる側の先輩たちも同じように緊張しています
0:00:31	緊張しているのは新入社員さんたちだけじゃなくて、先輩も緊張していると思います
0:00:37	教育と言ったんですけど、
0:00:38	持論としては「プログラマーは勝手に育つから、放っておいても平気」という意見があることも事実です
0:00:43	新人教育には色んな考え方がありますが、
0:00:47	教え方が悪いと辞めてしまう、
0:00:48	いわゆる「潰れてしまう」ということですね
0:00:50	途中で挫折してしまう新人プログラマーが多いので、
0:00:52	新人さんは頑張ってください
0:00:53	潰されないように、負けないでください
0:00:55	教え方が悪いとか、
0:00:57	やり方は色々あると思うんですけど、
0:00:59	そんなに心配しなくても、できる人は勝手に育つから放っておいても平気、という
0:01:02	そういう意見もあるということです
0:01:04	逆に言うと、
0:01:05	自分がどうやってできるようになったかを説明しろと言われても
0:01:07	難しいのが実際のところだと思います
0:01:09	ちゃんとした教育プログラムというか、プログラマーなのに
0:01:12	プログラマーを育てるプログラムがないというのも変ですけど、
0:01:14	万人に通用する
0:01:17	方法がないのが事実なので、
0:01:19	育つ人は育つ、生き残って潰れなければ
0:01:22	育つということです
0:01:22	頑張ってください
0:01:25	毎日水をあげすぎるというか、構ってばかりだと
0:01:28	せっかく芽が出たのに
0:01:29	根が腐ってしまうかな、と
0:01:30	水のやりすぎも良くないですが、初日や1年目のプログラマーさんにそれはないですね
0:01:34	
0:01:35	
0:01:36	
0:01:36	実際は少しずつ構ったり、気にかけたりして
0:01:38	新人さんの成長を見守ってあげてください。放っておいても平気と言っている私が言うのも何ですが
0:01:43	教育係は誰がやるか、
0:01:45	これはもう明日明後日入ってくるなら決まっていると思いますが、
0:01:48	誰がやるかは重要です
0:01:49	教育係は一番できる人がやるのが、新人側としては
0:01:53	師匠が一番強い人だといい、という感じです
0:01:56	でも実際は一番できる人、
0:01:59	仕事ができる人は多忙というか、
0:02:00	手持ちの仕事が忙しくて、新人を構って優しく導いたりする暇がないこともあります
0:02:10	暇がないんだったら、
0:02:11	暇な人がやればいいんじゃないの？ということで
0:02:13	一番暇な人、
0:02:14	たまたま手が空いている人ですね
0:02:15	仕事には
0:02:17	波があるので、
0:02:18	手が空いている
0:02:19	社員が新人の面倒を見ればいいんじゃないか、という話です
0:02:21	「〇〇さんに渡すような仕事はないか」と聞いて回ったり、
0:02:25	新人さんの教育プログラムというか、
0:02:27	教育スケジュールができてなくて
0:02:28	場当たり的に「何か仕事ない？」と聞き回ると
0:02:31	新人さん側からすると、
0:02:32	なんだか「厄介者扱い」というか
0:02:33	「皆さんに迷惑をかけているな」と思ってしまうので、
0:02:35	この辺りは気を使って、
0:02:36	「仕事ない？」というのは
0:02:38	裏でやってほしいな、というのが一つの意見です
0:02:41	次は、教育係を一期上の先輩、
0:02:42	去年の新人に決めてしまうのも一つの手です
0:02:43	
0:02:45	検索で、
0:02:45	「ハロプロの教育係」とか検索すると、
0:02:48	伝統的に一つ上の先輩が教育係をする、ということが出てくるので見てみてください
0:02:53	そういう意味で、この「ハロプロ教育係」と検索すると
0:03:00	
0:03:00	教育係という名目で、
0:03:01	先輩が後輩に指導するという伝統があることが分かります
0:03:04	
0:03:05	教育係になると
0:03:07	自分も成長できるので、
0:03:08	
0:03:08	新人教育を任されたら
0:03:09	「私にはできません」とかではなく、
0:03:11	もしあなたの先輩から
0:03:13	「今年の新人の教育係をやって」と言われたら、引き受けた方が自分の成長になると思うのでやってみてください
0:03:17	最近あるのは、教育を外注することです
0:03:22	「社内教育なんて古いんだよ」という感じで、
0:03:24	新人教育も外注する時代です
0:03:26	お金を払って外注する、
0:03:27	そんなパターンも最近見かけます
0:03:30	社内では教えない、
0:03:31	全部が全部ではありませんが、
0:03:32	外注したいという話です
0:03:33	外注するメリット・
0:03:35	デメリットなどは、
0:03:35	色んなコラムを書かれている方もいるので、
0:03:37	キーワードで検索して、流行りのアウトソーシングを探ってみるといいと思います
0:03:44	そんな感じで「新人さん頑張ってください」という感じですが、
0:03:46	今言う話ではないかもしれませんが
0:03:49	「成長後、今の会社にずっと在籍しますか？」と
0:03:51	聞くと、
0:03:52	大概の方が「実力がついたらステップアップで転職する予定です」という
0:03:55	感じで、一箇所の会社にはいません、と
0:03:57	それは当たり前の話ですけど、
0:03:58	ステップアップする時期が来たら自分で転職しますが、
0:04:01	
0:04:03	いきなり新入社員に対する質問じゃないですね
0:04:06	ちょっと悩みがあるというのは、
0:04:09	使えるようになった頃に
0:04:10	せっかく教育したり
0:04:11	手間暇かけたのに辞められてしまう、という
0:04:13	ホワイト企業の社長や先輩が
0:04:14	せっかく育てたのに、と残念になるという
0:04:16	お話を結構聞きます
0:04:18	外注の話に反するようですが、結構困っているんだと思います
0:04:21	育てても辞めてしまうから、
0:04:23	その辞めた人材をまた取るのは
0:04:25	自分で育てないで、
0:04:26	他の企業で育って辞めた
0:04:28	人材を取った方がいいというパターンもあります
0:04:29	第二新卒狙いとは少し違いますが、
0:04:31	3、4年経ってステップアップで転職した人を雇う方が、自前で育てるより経費削減になると考える経営者もいらっしゃいます
0:04:38	
0:04:39	
0:04:40	余計な話は置いておいて、
0:04:43	そういう意味での教育に
0:04:44	「予算やお金を使っても、どうせ辞めちゃうでしょ？」
0:04:46	「だったら適当に教育して、生き残った人を大切にした方がいいんじゃないの？」という
0:04:49	そんな捉え方をされる方もいらっしゃいます
0:04:53	新人と社員教育にお金と時間をかけているホワイト企業の経営者や、
0:04:56	親切な先輩指導員の方は、
0:04:57	そんなこと言わないでね、と
0:04:59	
0:04:59	
0:05:02	変な話ですが
0:05:03	私も、できるプログラマーは
0:05:04	新人の頃から勝手に成長するというのは、実際そうだと思うんですけど
0:05:07	これは私の経験則ですが
0:05:08	私が見てきた範囲では
0:05:10	大概のできるプログラマーさんは、何もしなくても育っているなという印象があります
0:05:16	そんな話は置いておいて、教育にお金と時間をかけて大切に育て
0:05:17	会社と一緒に成長できるのが理想です
0:05:19	常にやりがいのある仕事を日々与えて
0:05:21	お互い成長していくのがいいと思います
0:05:23	これは建前かもしれません。やりがいのある仕事があれば
0:05:27	ステップアップしていけますし
0:05:30	会社も一緒にステップアップしていけば、そのまま定着してくれると思うので
0:05:33	この辺りは
0:05:35	考えさせられますね
0:05:38	そこで気をつけなきゃいけないのが
0:05:39	新人の頃にここまで分かるかどうか分かりませんが
0:05:42	「やりがい搾取」というものがあります
0:05:44	
0:05:44	やりがいを餌にして
0:05:46	
0:05:48	
0:05:48	色んな作業を低賃金でやらせる、ということがあるので
0:05:51	実力がついてきた時に
0:05:53	見合った給料がなければ
0:05:54	ステップアップ（転職）されるのは、しょうがないのかなと思います
0:05:56	お互いのバランスの取り方ですね
0:05:58	「やりがい搾取」や「ブラック企業」で検索すると、色んな例が出てくると思います
0:06:03	「桃栗三年柿八年」という言葉がありますが
0:06:07	プログラマーは何年なんでしょうね
0:06:08	実際は人によって成長速度が違うし、成長する人は放っておいても成長します
0:06:15	その話は置いておいて、教育にかけた期間と
0:06:17	一人前になって売り上げを上げられるまでの期間
0:06:18	最近は会社としても、人に対する「投資期間」と「回収期間」という考え方をします
0:06:24	
0:06:25	例えば年収300万円の社員を
0:06:28	1年間教育したとして
0:06:30	次は500万円ずつ売り上げてもらえば
0:06:33	損益分岐点はどこか、と考える
0:06:35	これは少しブラックな思考かもしれませんね
0:06:38	本当にそんな感じです
0:06:39	でも、この辺りの考え方で
0:06:40	教育にいくらかけて、将来の売り上げや自分のチームの
0:06:43	戦力になるから育てる、といったことは
0:06:44	どうしても考えてしまうのは仕方ないですし、お互い様という感じです
0:06:49	少し前に流行ったキーワードで「3年転職」や、転職理由で「成長したい」などがあるので
0:06:53	この辺りを検索すると
0:06:54	答えが少し見つかるかもしれません
0:06:56	「石の上にも三年」についても、詳しく書いた方がよかったかもしれませんね
0:07:00	3年経ってから転職した方がいいのか
0:07:02	それとも、この会社では成長の見込みがないからすぐに転職したいのか
0:07:07	色んな理由があると思うので
0:07:08	この辺りも検索してみるといいと思います
0:07:10	結局、何が言いたいかというと
0:07:11	お前は何なんだ、という話ですが
0:07:12	古き良き日本式というか
0:07:14	新卒からの伝統で「会社の色に染める」という
0:07:15	洗脳とまでは言いませんが、長く回収しようとする会社は
0:07:20	さっさとブラックな感じになることもあります
0:07:24	でも逆のパターンというか
0:07:26	長く会社に居座る悪い例として「妖精さん」というのもあります
0:07:28	このキーワードで探すと面白いことが出ていると思うので、探してみてください
0:07:33	そんなこんなで、いつものように話がまとまっていませんが
0:07:35	話半分、いや4分の1程度で
0:07:37	少しでも皆さんの心に響けば嬉しいです
0:07:40	言いたいのは、新人さんも教育係の先輩も大変だと思いますが
0:07:43	負けないで頑張ってね、ということです
0:07:44	誰かと勝負してるんだっけ？という話ですが
0:07:45	すみません
0:07:46	ホワイト企業の経営者様で、新人教育にお金と時間をかけている
0:07:49	良い経営者の方は、ぜひ頑張って続けてください
0:07:52	
0:07:54	老害おじさんの独り言でした
0:07:57	以上です
0:08:01	そういう意味では
0:08:03	新人教育は誰が教えるべきか
0:08:05	「勝手に育つから」という考えには、何か理由があるはずなんですよね
0:08:09	ここが分かれば
0:08:10	プログラマー教育として、かなり良いものになると思うのですが
0:08:13	なかなか万人に当てはまるものはないというか
0:08:17	「勝手に育つから放っておく」のも、放りっぱなしは駄目なんです
0:08:20	根が腐ってしまう、というのは変な表現ですが
0:08:25	教育係は誰がやってもいいんですけど
0:08:28	一番いいのは、
0:08:29	一番できる人、
0:08:30	その会社で一番輝いている人がいいんじゃないかなと思います
0:08:32	キラキラ仕事をしている人、
0:08:34	頑張って仕事をしている人の下について
0:08:38	新人さんに育ての見本になってもらうと
0:08:39	その新人が、たとえ厳しくても「一番輝いている」とか
0:08:43	
0:08:45	単純に「強ければいい」
0:08:48	「売り上げを上げればいい」となってしまうと
0:08:49	またまずいので
0:08:50	輝いている人を真似するのがいいと思います
0:08:52	
0:08:53	教育係を「一番暇な人」に
0:08:56	してしまうのが一番まずいと思うので
0:08:57	そこは「厄介者扱い」にならないように
0:09:00	「構ってあげる」のもいいのですが
0:09:05	この辺りのバランスというか
0:09:07	新人さんも「構ってちゃんと思われるのが嫌だ」と考えているかもしれないので
0:09:13	先輩社員の方が
0:09:15	自分の新人の頃を思い出しながらやってみるといいと思います
0:09:18	そういう意味で、一つ上の先輩、
0:09:20	去年自分が新人として経験したことを
0:09:22	伝えてあげるのは同じ立場として良いですね
0:09:26	私のようなおじさんが言うよりも
0:09:27	1年前の先輩からの意見の方が、若者同士で共感できると思うので
0:09:32	一つ上の先輩につくのはいいと思います
0:09:36	あとは、
0:09:37	考えるのが嫌だったら
0:09:38	予算があるなら
0:09:39	外注してしまうのも一つの手です
0:09:42	実力がついたらステップアップ、という話ですが
0:09:45	教える側からすると
0:09:46	「実力がついたらすぐ転職しちゃうよ」と思われがちです
0:09:48	
0:09:50	「どうせ転職しちゃうなら、時間をかける必要はないかな」という
0:09:52	
0:09:55	やりがい搾取とか、
0:09:56	この辺りもなかなか難しいですね
0:09:58	
0:09:59	実力がついて辞めてしまうのを狙って
0:10:01	
0:10:03	実力がついた人だけを厳選して採用することで、教育費用を節約すると考える
0:10:09	いわゆるブラックな社長もいるかもしれませんが
0:10:12	実際のところ、その社長が給料を
0:10:13	ちゃんと社員に還元していたら
0:10:15	良いやり手社長かもしれませんし
0:10:16	ただ優しいだけで給料が低いと
0:10:19	「やりがい搾取」になってしまうので
0:10:21	
0:10:21	給料とのバランスを考えなきゃいけないところだと思います
0:10:23	話半分に聞いてみてください
0:10:25	以上です
0:10:28	2回繰り返しちゃった
0:10:29	
0:10:30	頑張ってください
0:10:31	以上です&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;</content>        
        <link rel="enclosure" href="https://cdn.image.st-hatena.com/image/scale/ebb7237c35c76163622acb2f9d469c261cdc378a/backend=imagemagick;version=1;width=1300/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fk%2Fken3memo%2F20260515%2F20260515140330.png" type="image/png" length="0" />

        <author>
            <name>ken3memo</name>
        </author>
    </entry>
    
  
    
    
    <entry>
        <title> YouTube Ask Studioの不具合と利用制限？今日は早めに店じまい・・・</title>
        <link href="https://ken3memo.hatenablog.com/entry/2026/05/17/230638"/>
        <id>hatenablog://entry/17179246901389033544</id>
        <published>2026-05-17T23:06:38+09:00</published>
        <updated>2026-05-17T23:06:38+09:00</updated>        <summary type="html">雑談 YouTube Ask Studioの不具合と利用制限 なんだか、Ask Studioが空白で使えません。※今日の午前中は調子が良かったのに・・・ 26/05/17 空白の枠をスクショしてみた おっさんの質問 今、YouTubeのAskスタジオ、サポートAIが空白で反応しないのですが、 ・1.トラブルですか？ ・2.本日サムネイルの変更など数多く相談しています、相談回数の上限、使い過ぎなどありますか？ AIの回答 ご不便な状況ですね。お送りいただいた画像を確認したところ、YouTube StudioのAI機能「Ask Studio」のポップアップ内が完全に白く表示され、機能していない状態…</summary>
        <content type="html">&lt;h1 id=&quot;雑談-YouTube-Ask-Studioの不具合と利用制限&quot;&gt;雑談 YouTube Ask Studioの不具合と利用制限&lt;/h1&gt;

&lt;p&gt;なんだか、Ask Studioが空白で使えません。※今日の午前中は調子が良かったのに・・・
&lt;figure class=&quot;figure-image figure-image-fotolife&quot; title=&quot;26/05/17 空白の枠をスクショしてみた&quot;&gt;&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260517/20260517224908.jpg&quot; width=&quot;439&quot; height=&quot;462&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;figcaption&gt;26/05/17 空白の枠をスクショしてみた&lt;/figcaption&gt;&lt;/figure&gt;&lt;/p&gt;

&lt;h2 id=&quot;おっさんの質問&quot;&gt;おっさんの質問&lt;/h2&gt;

&lt;p&gt;今、YouTubeのAskスタジオ、サポートAIが空白で反応しないのですが、&lt;/p&gt;

&lt;p&gt;・1.トラブルですか？
・2.本日サムネイルの変更など数多く相談しています、相談回数の上限、使い過ぎなどありますか？&lt;/p&gt;

&lt;h2 id=&quot;AIの回答&quot;&gt;AIの回答&lt;/h2&gt;

&lt;p&gt;ご不便な状況ですね。お送りいただいた画像を確認したところ、YouTube StudioのAI機能「Ask Studio」のポップアップ内が完全に白く表示され、機能していない状態であることが分かります。&lt;/p&gt;

&lt;p&gt;ご質問いただいた2点について、現在の状況を踏まえてお答えいたします。&lt;/p&gt;

&lt;h3 id=&quot;1-トラブル不具合ですか&quot;&gt;1. トラブル（不具合）ですか？&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;YouTube側のシステム不具合、または一時的なエラーである可能性が非常に高いです。&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;実は直近（5月16日〜17日にかけて）、YouTubeの公式ヘルプコミュニティにおいて、他のクリエイターからも「PCやスマホからアクセスしてもAsk Studioの画面が真っ白になって使えなくなった」という、全く同じ症状が報告されています。キャッシュの消去やブラウザの変更を行っても改善しないケースが見られるため、ユーザー側ではなくYouTubeのシステム側で一時的なトラブルや不具合が発生していると考えられます。&lt;/p&gt;

&lt;h3 id=&quot;2-相談回数の上限使い過ぎなどの可能性はありますか&quot;&gt;2. 相談回数の上限、使い過ぎなどの可能性はありますか？&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;その可能性も十分に考えられます。&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Ask StudioのようなAIアシスタント機能（Geminiベースの機能など）は、サーバーの負荷を抑えるために短時間での利用回数やリクエスト数に上限（レートリミット）が設けられているのが一般的です。&lt;/p&gt;

&lt;p&gt;本日サムネイルの変更や相談を数多く行われたとのことですので、以下の2つのパターンが推測されます。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;一時的な利用制限に達した：&lt;/strong&gt; 相談回数の上限に達した際、本来であれば「しばらく時間を置いてからお試しください」といったエラーメッセージが出るべきところ、システムのバグで画面が空白（真っ白）になってしまっている可能性。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;セッションのバグ：&lt;/strong&gt; 短時間に連続して多くのデータをやり取りしたことで、Ask Studioとの接続セッションが一時的に不安定になり、読み込みエラーを起こしている可能性。&lt;/li&gt;
&lt;/ul&gt;


&lt;hr /&gt;

&lt;h3 id=&quot;今後の対処法&quot;&gt;今後の対処法&lt;/h3&gt;

&lt;p&gt;まずはYouTube側のシステム不具合や利用制限の解除を待つのが最も確実です。以下のステップをお試しください。&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;時間を置いてから再度試す&lt;/strong&gt;
AIの利用制限や一時的なシステムエラーの場合、&lt;strong&gt;数時間から1日程度&lt;/strong&gt;時間を置くことで、制限がリセットされて自動的に直ることが多いです。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ブラウザのシークレットモード（プライベートブラウズ）を試す&lt;/strong&gt;
現在のブラウザに古いキャッシュやセッション情報が残っていることが原因の場合、シークレットウィンドウからYouTube Studioにログインし直すことで、正常に読み込めるようになることがあります。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ログアウトと再ログイン&lt;/strong&gt;
一度YouTubeアカウントからログアウトし、ブラウザを再起動した後に再度ログインしてみてください。&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;現時点では同様のトラブル報告が出ているため、まずは無理に何度もクリックせず、少し時間を置いて様子を見ていただくことをおすすめいたします。&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;figure class=&quot;figure-image figure-image-fotolife&quot; title=&quot;ブログ書いてないで、さっさと寝なさい・・・&quot;&gt;&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260517/20260517230443.png&quot; width=&quot;1200&quot; height=&quot;655&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;figcaption&gt;ブログ書いてないで、さっさと寝なさい・・・&lt;/figcaption&gt;&lt;/figure&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;おっさんが軽く返信&quot;&gt;おっさんが軽く返信&lt;/h2&gt;

&lt;p&gt;ありがとう、わかりました。ちょうど休憩をとる提案をされたと思い今日の作業は終了します。&lt;/p&gt;

&lt;p&gt;明日、またAskスタジオを使ってみますね。&lt;/p&gt;

&lt;h2 id=&quot;AIのやさしい忖度返信で今日は終了&quot;&gt;AIのやさしい？忖度返信で今日は終了&lt;/h2&gt;

&lt;p&gt;それが一番ですね！素晴らしい捉え方だと思います。&lt;/p&gt;

&lt;p&gt;本日はサムネイルの変更や相談など、たくさん頭を使って作業されたと思いますし、AIからの「今日はお疲れ様、ここらでちょっとお茶でも飲んで休みましょう！」という粋なサイン（強制休憩モード）だったのかもしれません。&lt;/p&gt;

&lt;p&gt;パソコンを閉じて、今夜はぜひゆっくり心と体を休めてくださいね。&lt;/p&gt;

&lt;p&gt;明日にはAsk Studioもご機嫌を直して、またサクサク動いてくれることを願っています。今日もお疲れ様でした！&lt;/p&gt;
</content>        
        <category term="雑談" label="雑談" />
        
        <link rel="enclosure" href="https://cdn.image.st-hatena.com/image/scale/c8a8e1e6db1279f69ea12dcfebafd6195aa811e5/backend=imagemagick;version=1;width=1300/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fk%2Fken3memo%2F20260517%2F20260517224908.jpg" type="image/jpeg" length="0" />

        <author>
            <name>ken3memo</name>
        </author>
    </entry>
    
  
    
    
    <entry>
        <title>第21回ヴィクトリアマイル（GⅠ）の噂・都市伝説をAIと競馬素人のオジサンがまとめました</title>
        <link href="https://ken3memo.hatenablog.com/entry/2026/05/16/221621"/>
        <id>hatenablog://entry/17179246901388665396</id>
        <published>2026-05-16T22:16:21+09:00</published>
        <updated>2026-05-16T22:16:21+09:00</updated>        <summary type="html">【2026年ヴィクトリアマイル】勝率0%の呪いからヴィクトリア女王の啓示まで！データと都市伝説が交錯する驚愕のオカルト大予言 こんにちは！競馬のロマンと怪しい都市伝説が大好物なおじさんです。 いよいよ開催される第21回ヴィクトリアマイル（GⅠ）。春の女王決定戦として毎年熱い戦いが繰り広げられますが、実はこのレース、純粋な統計学だけでは説明のつかない「特異点」や、競馬界に囁かれる「サイン・ジンクス」が奇妙に絡み合う、極めて特殊な魔境だということをご存じでしょうか？ 今回は、過去の膨大なデータに潜む「不自然な偏り」と、馬名や数字に隠された「超論理的な暗示」を徹底的に融合！今年の出走馬18頭の運命を…</summary>
        <content type="html">&lt;h1 id=&quot;2026年ヴィクトリアマイル勝率0の呪いからヴィクトリア女王の啓示までデータと都市伝説が交錯する驚愕のオカルト大予言&quot;&gt;【2026年ヴィクトリアマイル】勝率0%の呪いからヴィクトリア女王の啓示まで！データと都市伝説が交錯する驚愕のオカルト大予言&lt;/h1&gt;

&lt;p&gt;こんにちは！競馬のロマンと怪しい都市伝説が大好物なおじさんです。&lt;/p&gt;

&lt;p&gt;いよいよ開催される第21回ヴィクトリアマイル（GⅠ）。春の女王決定戦として毎年熱い戦いが繰り広げられますが、実はこのレース、純粋な統計学だけでは説明のつかない「特異点」や、競馬界に囁かれる「サイン・ジンクス」が奇妙に絡み合う、極めて特殊な魔境だということをご存じでしょうか？&lt;/p&gt;

&lt;p&gt;今回は、過去の膨大なデータに潜む「不自然な偏り」と、馬名や数字に隠された「超論理的な暗示」を徹底的に融合！今年の出走馬18頭の運命を紐解く、面白すぎるプロファイリングをお届けします。
&lt;figure class=&quot;figure-image figure-image-fotolife&quot; title=&quot;AI検索を使ってデータを集めてブログを作成しました&quot;&gt;&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260516/20260516221012.png&quot; width=&quot;1200&quot; height=&quot;670&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;figcaption&gt;AI検索を使ってデータを集めてブログを作成しました&lt;/figcaption&gt;&lt;/figure&gt;
信じるか信じないかは、あなた次第です……！&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;1-過去10年勝率00死の4枠と呪われた外枠のジンクス&quot;&gt;1. 過去10年勝率0.0％！「死の4枠」と呪われた外枠のジンクス&lt;/h2&gt;

&lt;p&gt;東京競馬場・芝1600メートルは、本来なら枠順による有利不利が少ないフェアなコースとして知られています。しかし、ことヴィクトリアマイルに関しては、コース特性を無視した「枠の呪い」が存在します。&lt;/p&gt;

&lt;h3 id=&quot;-死の4枠に引き裂かれる有力馬たち&quot;&gt;■ 「死の4枠」に引き裂かれる有力馬たち&lt;/h3&gt;

&lt;p&gt;過去10年のデータで最も恐ろしい負の特異点が&lt;strong&gt;「4枠（青帽子）」&lt;/strong&gt;です。なんと&lt;strong&gt;勝率0.0％、全体成績も［0-1-2-16］&lt;/strong&gt;という壊滅的な数字。馬群の中心で揉まれる心理的ストレスが、牝馬の末脚を鈍らせるのではないかと言われています。&lt;/p&gt;

&lt;p&gt;今年、この死の枠に入ってしまったのが、実力馬の&lt;strong&gt;クイーンズウォーク（7番）&lt;/strong&gt;と、大口投票で話題の&lt;strong&gt;カムニャック（8番）&lt;/strong&gt;。この2頭の強大な能力が呪いを打ち破るのか、それともジンクスに飲み込まれるのか、最大の注目ポイントです。&lt;/p&gt;

&lt;h3 id=&quot;-冷酷すぎる7枠の不振&quot;&gt;■ 冷酷すぎる「7枠」の不振&lt;/h3&gt;

&lt;p&gt;さらに外目の&lt;strong&gt;「7枠（橙帽子）」&lt;/strong&gt;も過去10年で［1-0-1-25］、勝率・連対率ともにわずか3.7％と異常な低迷を見せています。今年ここに配置されたのは、カナテープ（13番）、ジョスラン（14番）、そしてGⅠ馬アカイイトの妹である良血馬&lt;strong&gt;アイサンサン（15番）&lt;/strong&gt;。血統のポテンシャルでこの不吉なデータを覆せるでしょうか。&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;2-若さだけが正義じゃない高齢牝馬の奇跡という爆弾&quot;&gt;2. 若さだけが正義じゃない！「高齢牝馬の奇跡」という爆弾&lt;/h2&gt;

&lt;p&gt;生物学的に牝馬のピークは4歳頃とされていますが、ヴィクトリアマイルでは「世間から忘れ去られた超高齢牝馬が若駒をなぎ倒す」というロマンあふれる都市伝説があります。実は、過去10年で4歳・5歳馬を遥かに凌駕する異常な馬券回収率を叩き出しているのが&lt;strong&gt;「6歳以上」&lt;/strong&gt;のカテゴリーなのです。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;2016年：&lt;/strong&gt; 7歳のストレイトガールが勝利&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;2024年：&lt;/strong&gt; 6歳のテンハッピーローズが単勝2万馬券の超大穴を開けて激走&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;今年この「老獪な牝馬の都市伝説」に合致するのは、6歳の&lt;strong&gt;ココナッツブラウン（9番）&lt;/strong&gt;、そして2016年の覇者と同じ「7歳」を迎えた&lt;strong&gt;ドロップオブライト（10番）&lt;/strong&gt;と&lt;strong&gt;カナテープ（13番）&lt;/strong&gt;。穴党のオカルト予想家にとって、彼女たちは絶対に無視できない「爆弾」です。&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;3-完璧な血統とヴィクトリア女王の純白ドレスが導く絶対強者&quot;&gt;3. 完璧な血統と「ヴィクトリア女王の純白ドレス」が導く絶対強者&lt;/h2&gt;

&lt;p&gt;競馬における血統は、時に恐ろしいほどの符合を生み出します。今回の出走馬の中で、データ・オカルトの両面から「完全体」として君臨しているのが、1番人気の&lt;strong&gt;エンブロイダリー（12番）&lt;/strong&gt;です。&lt;/p&gt;

&lt;h3 id=&quot;-血統的な裏付け&quot;&gt;■ 血統的な裏付け&lt;/h3&gt;

&lt;p&gt;過去10年で無類の強さを誇る「ディープインパクトの血」に加え、母系にノーザンダンサー系とミスタープロスペクター系のスピード・底力を融合させることが勝利の黄金律。エンブロイダリーは父にアドマイヤマーズ、母の父にクロフネ（ノーザンダンサー系）を持ち、東京マイルへの適性は文句なしです。&lt;/p&gt;

&lt;h3 id=&quot;-馬名に隠された美しき言霊の奇跡&quot;&gt;■ 馬名に隠された「美しき言霊の奇跡」&lt;/h3&gt;

&lt;p&gt;ここからが恐ろしいサイン。馬名の「エンブロイダリー」は、英語で&lt;strong&gt;「刺繍、ドレスの装飾」&lt;/strong&gt;を意味します。
歴史を紐解くと、現代の定番である「純白のウェディングドレス」を世界で初めて大流行させたのは、19世紀イギリスの君主&lt;strong&gt;「ヴィクトリア女王」&lt;/strong&gt;なのです！&lt;/p&gt;

&lt;p&gt;「ヴィクトリア」マイルという舞台で、ヴィクトリア女王の最大の遺産である「ドレスの装飾」の名を持つ馬が一線級で走る――。これは偶然で片付けるには美しすぎる、完璧な歴史的サインの一致と言えるでしょう。&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;4-馬名と枠色が完全一致天からの啓示を受けた赤の奇跡&quot;&gt;4. 馬名と枠色が完全一致！天からの啓示を受けた「赤」の奇跡&lt;/h2&gt;

&lt;p&gt;サイン理論において、馬名に含まれる「色彩」と「引き当てた枠色」が一致する現象は、&lt;strong&gt;「天からの啓示」と呼ばれる最強の激走フラグ&lt;/strong&gt;です。&lt;/p&gt;

&lt;p&gt;今年、その奇跡的な確率をくぐり抜けたのが、単勝76.7倍の大穴&lt;strong&gt;ケリフレッドアスク（5番）&lt;/strong&gt;。
名前に「Red（赤）」を持つ彼女が引き当てたのは、なんと&lt;strong&gt;「3枠（赤帽子）」の5番&lt;/strong&gt;！&lt;/p&gt;

&lt;p&gt;他にも「Brown」を持つココナッツブラウン（9番）や、「ラベンダー（薄紫）」を意味するラヴァンダ（6番）、「光（すべての色の源）」を意味するドロップオブライト（10番）など、今年は名前に色彩を纏う馬が多数エントリーしており、不思議なシンクロニシティを感じさせます。&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;5-5月17日と第21回が予言する数秘術と横山親子の数奇な運命&quot;&gt;5. 「5月17日」と「第21回」が予言する数秘術と、横山親子の数奇な運命&lt;/h2&gt;

&lt;p&gt;昭和の時代から脈々と受け継がれる「開催日や回数の数字がそのまま着順になる」という数秘術。ここにも驚くべき符号が隠されています。&lt;/p&gt;

&lt;h3 id=&quot;-数字が導く予言の買い目&quot;&gt;■ 数字が導く予言の買い目&lt;/h3&gt;

&lt;p&gt;今年の開催は&lt;strong&gt;「第21回」&lt;/strong&gt;、日付は&lt;strong&gt;「5月17日」&lt;/strong&gt;、出走頭数は「18頭」です。
* &lt;strong&gt;「第21回」の暗示：&lt;/strong&gt; 1番カピリナと2番ワイドラトゥールの決着。
* &lt;strong&gt;「5月17日」の暗示：&lt;/strong&gt; 5番ケリフレッドアスク、17番パラディレーヌの激走。
* &lt;strong&gt;数式の法則：&lt;/strong&gt; 5月17日の数字を足すと 5 + 17 = 22。出走頭数の18を引くと「4」。この4番に入っているのがエリカエクスプレス。&lt;/p&gt;

&lt;p&gt;驚くべきことに、一部の熱狂的なサイン派の間ではすでに&lt;strong&gt;「1着カピリナ（1番）、2着ワイドラトゥール（2番）、4着エリカエクスプレス（4番）」&lt;/strong&gt;という、数字のサインをすべて網羅した具体的な着順予測まで飛び交っています。&lt;/p&gt;

&lt;h3 id=&quot;-1枠を独占する横山一族の血脈&quot;&gt;■ 1枠を独占する「横山一族」の血脈&lt;/h3&gt;

&lt;p&gt;この予言をさらに後押しするのが、1枠のジョッキーたちです。
* &lt;strong&gt;1枠1番 カピリナ：&lt;/strong&gt; 父・横山典弘 騎手（58歳の生ける伝説）
* &lt;strong&gt;1枠1番 ワイドラトゥール：&lt;/strong&gt; 次男・横山武史 騎手（関東のトップ）&lt;/p&gt;

&lt;p&gt;最高峰のGⅠ舞台で、18頭の中から最も内側の特別なポジションを&lt;strong&gt;「実の親子」が独占する&lt;/strong&gt;という確率論を超えた特異点。偉大な父がペースを握り、優秀な息子が追う――そんな「1枠の親子ワンツー」という映画のような大穴シナリオが現実味を帯びてきます。&lt;/p&gt;

&lt;h3 id=&quot;-おまけ三姉妹サインの連鎖&quot;&gt;■ おまけ：「三姉妹サイン」の連鎖&lt;/h3&gt;

&lt;p&gt;さらに、出走馬の中には「エリカエクスプレス（4番）」「カナテープ（13番）」「アイサンサン（15番）」という、人間の女性の下の名前（エリカ、カナ、アイ）を持つ馬が3頭揃っています。牝馬の祭典に集まったこの「三姉妹」が上位を独占したら、これまた歴史的なオカルト決着になりますね。&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;まとめあなたはデータ論理を信じるかそれともロマン超論理を信じるか&quot;&gt;まとめ：あなたはデータ（論理）を信じるか、それともロマン（超論理）を信じるか？&lt;/h2&gt;

&lt;p&gt;2026年のヴィクトリアマイルは、科学的なデータが示す「王道」と、都市伝説が示す「暗示」が激しく火花を散らす、かつてない特異なレースになりそうです。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;論理的な本命：&lt;/strong&gt; 血統・実力・馬名サインすべてが完璧な&lt;strong&gt;エンブロイダリー（12番）&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;呪いに挑む女王：&lt;/strong&gt; 死の4枠を実力でねじ伏せたい&lt;strong&gt;カムニャック（8番）&lt;/strong&gt;と&lt;strong&gt;クイーンズウォーク（7番）&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;オカルトの使者：&lt;/strong&gt; 親子ワンツーを狙う&lt;strong&gt;1枠（カピリナ・ワイドラトゥール）&lt;/strong&gt;、枠色一致の&lt;strong&gt;ケリフレッドアスク（5番）&lt;/strong&gt;、7歳馬の奇跡を追う&lt;strong&gt;ドロップオブライト（10番）&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;サラブレッドの究極の肉体能力のぶつかり合いか、それとも数万人の想念と偶然の数字が織りなす現代の神話か。すべての答えは、緑のターフの上、わずか1分30秒の激闘の果てに証明されます。&lt;/p&gt;

&lt;p&gt;みなさんの予想に、勝利の女神（ヴィクトリア）が微笑みますように！&lt;/p&gt;

&lt;hr&gt;


&lt;p&gt;&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260516/20260516221137.png&quot; width=&quot;1200&quot; height=&quot;670&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;/p&gt;

&lt;hr&gt;


&lt;h2 id=&quot;使用したデータ収集プロンプト&quot;&gt;使用したデータ収集プロンプト&lt;/h2&gt;

&lt;p&gt;下記のプロンプトを使いました&lt;/p&gt;

&lt;pre class=&quot;code text&quot; data-lang=&quot;text&quot; data-unlink&gt;# 競馬の噂や話題のネタを調べたい

私はJRA競馬 
2026年5月17日（日曜） 2回東京8日 発走時刻：15時40分
11レース
ウインファイヴ 5レース目
第21回ヴィクトリアマイルGⅠ
4歳以上  オープン    （国際）牝（指定） 定量  コース：1,600メートル（芝・左）
で
都市伝説のネタになりそうな偏りを切り口を探りたいです

## 過去5年や10年の成績をまとめて、噂や都市伝説で使えそうな偏りがあるか？チェックしたい

・馬番、枠番の偏りがあるか？知りたい
-このレースは、内枠有利・外枠は来ない、など、ネタにしたい

・ローテーション、前走・ステップレースの偏りがあるか？
-前走XXX組の1・2着が好走する？など、前走のレースに偏りがあるか？
-前走連対していない馬はこないなど(まぁ、強い馬は前走も好走しているので当たり前かもしれませんが)

・馬の年齢別
-馬の年齢が指定されていないレースで、※オークス,ダービーなど同年代のレースは調べなくてよい
3歳が強い、4歳が連対するなど、年齢の偏りがあれば。

・ジョッキー別の成績をまとめてほしい
-このレースが得意な、縁のあるジョッキーを知りたい、都市伝説・噂のネタにしたい

・血統別の成績をまとめてほしい
-このレースが得意な、血統、産駒があれば知りたい、都市伝説・噂のネタにしたい

・厩舎別の特徴があるか？成績をまとめてほしい
-同様にこのレースが得意な厩舎、縁のある厩舎を知りたい、都市伝説・噂のネタにしたい

・出走日・開催日や第XX回XXX記念などの数字の語呂合わせ 偏りがあるか？知りたい
-第16回XXX記念で1-6や16番の馬,17回は1-7や17番の馬が来たとか、オカルト的な事があるか？

・馬名で面白い法則・偏りがあるか？知りたい
- 強い名前:〇〇キングや〇〇オウ、〇〇エンペラーなど、強い・名前の馬がこのレースは成績が良いなど、オカルト的な法則があれば教えてください(※産駒や厩舎で、XXXと付けている場合もありますが)
- 色を含んだ名前:〇〇グリーンや〇〇ゴールド、〇〇ブラッグなど、名前に色が入った馬がこのレースは成績が良いなど、オカルト的な法則があれば教えてください(※産駒や厩舎で、XXXと付けている場合もありますが)


都市伝説のネタになりそうな偏りを
イロイロな切り口で探りたいです&lt;/pre&gt;


&lt;p&gt;&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260516/20260516221336.png&quot; width=&quot;1200&quot; height=&quot;670&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;/p&gt;
</content>        
        <link rel="enclosure" href="https://cdn.image.st-hatena.com/image/scale/89125d951534b748290cebb6730c64dc57dcacbe/backend=imagemagick;version=1;width=1300/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fk%2Fken3memo%2F20260516%2F20260516221012.png" type="image/png" length="0" />

        <author>
            <name>ken3memo</name>
        </author>
    </entry>
    
  
    
    
    <entry>
        <title>雑談 AI「私は言語モデルで、そちらは私の設計に含まれていません。」について あわてるオッサンの話</title>
        <link href="https://ken3memo.hatenablog.com/entry/2026/05/15/095509"/>
        <id>hatenablog://entry/17179246901388071495</id>
        <published>2026-05-15T09:55:09+09:00</published>
        <updated>2026-05-15T09:55:09+09:00</updated>        <summary type="html">AI「私は言語モデルで、そちらは私の設計に含まれていません。」について いつもやさしいAIが急に冷たくなってビックリするオジサンの話です 作業を依頼するが無理ですと言われるおじさんの姿 結論・結果を先に書くと、指示文の中に単純なスペルミスがあって、それが 特定の指示内容がシステム上の制限（セーフティフィルターやツール呼び出しのエラー）に抵触 しただけのお話でした。 「大規模言語モデルとして私はまだ学習中であり、そちらについてはお役に立てません」 「私は言語モデルで、そちらは私の設計に含まれていません。」 と急に冷たくなった 「大規模言語モデルとして私はまだ学習中であり、そちらについてはお役に立…</summary>
        <content type="html">&lt;h1 id=&quot;AI私は言語モデルでそちらは私の設計に含まれていませんについて&quot;&gt;AI「私は言語モデルで、そちらは私の設計に含まれていません。」について&lt;/h1&gt;

&lt;p&gt;いつもやさしいAIが急に冷たくなってビックリするオジサンの話です
&lt;figure class=&quot;figure-image figure-image-fotolife&quot; title=&quot;作業を依頼するが無理ですと言われるおじさんの姿&quot;&gt;&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260515/20260515094524.png&quot; width=&quot;1200&quot; height=&quot;670&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;figcaption&gt;作業を依頼するが無理ですと言われるおじさんの姿&lt;/figcaption&gt;&lt;/figure&gt;
結論・結果を先に書くと、指示文の中に単純なスペルミスがあって、それが
&lt;strong&gt;特定の指示内容がシステム上の制限（セーフティフィルターやツール呼び出しのエラー）に抵触&lt;/strong&gt;
しただけのお話でした。&lt;/p&gt;

&lt;p&gt;「大規模言語モデルとして私はまだ学習中であり、そちらについてはお役に立てません」
「私は言語モデルで、そちらは私の設計に含まれていません。」
と急に冷たくなった&lt;/p&gt;

&lt;p&gt;&lt;figure class=&quot;figure-image figure-image-fotolife&quot; title=&quot;「大規模言語モデルとして私はまだ学習中であり、そちらについてはお役に立てません」&quot;&gt;&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260515/20260515094758.jpg&quot; width=&quot;919&quot; height=&quot;423&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;figcaption&gt;「大規模言語モデルとして私はまだ学習中であり、そちらについてはお役に立てません」&lt;/figcaption&gt;&lt;/figure&gt;&lt;/p&gt;

&lt;p&gt;&lt;figure class=&quot;figure-image figure-image-fotolife&quot; title=&quot;「私は言語モデルで、そちらは私の設計に含まれていません。」&quot;&gt;&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260515/20260515094847.jpg&quot; width=&quot;823&quot; height=&quot;409&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;figcaption&gt;「私は言語モデルで、そちらは私の設計に含まれていません。」&lt;/figcaption&gt;&lt;/figure&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;おっさんの質問&quot;&gt;おっさんの質問:&lt;/h2&gt;

&lt;p&gt;AIに下記の質問を投げてみた&lt;/p&gt;

&lt;pre class=&quot;code&quot; data-lang=&quot;&quot; data-unlink&gt;急に、
「大規模言語モデルとして私はまだ学習中であり、そちらについてはお役に立てません」
や
「私は言語モデルで、そちらは私の設計に含まれていません。」
私はそのように作られていない・・と冷たいメッセージで作業が終了します。

昨日まで動作していたプロンプトが、急に動かなくなりました？
AIのバージョンアップやパーソナライズの処理・参照などで、
無限ループやプロンプトの指示を理解できなかったり、
何か、問題が発生しているのでしょうか？

1.今、何かバージョンアップを行っていますか？
2.もしかして、使い過ぎで、一段下のAIに私の指示・プロンプトが渡されてるのでしょうか？
3.一か月ほど安定して使っていたプロンプトなので、変更したくないのですが、待たずにプロンプトの変更に取り掛かった方が良いでか？
4.また、プロンプトのエラー、切り分け方のコツがあったら、教えてください

よろしくお願いします。&lt;/pre&gt;


&lt;h2 id=&quot;AIの回答&quot;&gt;AIの回答:&lt;/h2&gt;

&lt;p&gt;昨日までスムーズに動いていたプロンプトが突然拒否されると、作業が止まってしまい困りますよね。画像「image_bd4fda.png」を拝見しましたが、これは特定の指示内容がシステム上の制限（セーフティフィルターやツール呼び出しのエラー）に抵触した際に出る標準的な拒否メッセージです。&lt;/p&gt;

&lt;p&gt;ITのプロとして多くのアセットを管理されている中で、効率化が妨げられるのは痛手かと思いますが、現在の状況と対策について整理しました。&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;1-現在バージョンアップを行っていますか&quot;&gt;1. 現在、バージョンアップを行っていますか？&lt;/h3&gt;

&lt;p&gt;Geminiは常にバックグラウンドで改善やアップデートが行われています。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;モデルの進化:&lt;/strong&gt; 現在、コアモデルには &lt;strong&gt;Gemini 3 Flash&lt;/strong&gt; が採用されており、有料プラン（Paid tier）の環境で提供されています。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;機能の更新:&lt;/strong&gt; 画像生成エンジンは &lt;strong&gt;Nano Banana 2&lt;/strong&gt; にアップデートされており、テキストから画像への生成や編集機能が強化されています。
こうした細かなアップデートにより、以前は通っていた表現が「新しい安全基準」に抵触したり、プロンプトの解釈順序が変わったりすることが稀にあります。&lt;/li&gt;
&lt;/ul&gt;


&lt;h3 id=&quot;2-使い過ぎで一段下のAIに切り替わっている可能性&quot;&gt;2. 使い過ぎで一段下のAIに切り替わっている可能性&lt;/h3&gt;

&lt;p&gt;単純な「ランクダウン」という仕組みはありませんが、利用枠（クォータ）の影響は考えられます。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;画像生成の制限:&lt;/strong&gt; Nano Banana 2（画像生成）には1日あたりの回数制限があります。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AI Plus:&lt;/strong&gt; 50回&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pro:&lt;/strong&gt; 100回&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Ultra:&lt;/strong&gt; 1000回&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;挙動:&lt;/strong&gt; 回数上限に達した場合、画像を生成しようとして失敗し、結果として「お役に立てません」という汎用的なエラーメッセージが返されることがあります。&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;h3 id=&quot;3-プロンプトの変更に取り組むべきか待つべきか&quot;&gt;3. プロンプトの変更に取り組むべきか、待つべきか&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;結論：待たずに、少しだけ「指示の表現」を変えてみることをおすすめします。&lt;/strong&gt;
AI側の仕様変更を待つよりも、現在のモデルが理解しやすい形に微調整する方が解決は早いです。特に「YouTube」「パワポ」「エクセル」といった固有名詞の組み合わせが、稀に著作権保護などのフィルターに誤検知される場合があるため、言葉を分散させるのがコツです。&lt;/p&gt;

&lt;h3 id=&quot;4-プロンプトエラーの切り分け解決のコツ&quot;&gt;4. プロンプトエラーの切り分け・解決のコツ&lt;/h3&gt;

&lt;p&gt;問題が「指示内容」にあるのか「システム側」にあるのかを判断するためのステップです。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ステップ1：最小単位でのテスト&lt;/strong&gt;
指示を一度に全部与えず、「〇〇の画像を生成して」という極めてシンプルな1文だけで動くか試してください。これで動くなら、原因は追加情報のどこかにあります。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ステップ2：禁止ワード・制限事項の推測&lt;/strong&gt;
「image_bd4fda.png」の例で言えば、例えばタイトルに含まれる「書き込み」や「情報」といった単語が、個人情報や機密情報の取り扱いに関するフィルターを刺激している可能性があります。抽象的な表現（例：「データの転記をイメージさせる画像」など）に言い換えてみてください。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ステップ3：コンテキスト（履歴）のクリア&lt;/strong&gt;
長期間同じチャットで会話を続けていると、過去の文脈が干渉して無限ループや誤解を招くことがあります。新しいチャット（スレッド）を立てて、まっさらな状態で同じプロンプトを入力してみてください。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ステップ4：役割の再定義&lt;/strong&gt;
カスタムGemの場合、「あなたはプロのデザイナーです」といった役割設定を冒頭に置くことで、生成の優先順位を上げることができます。&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;まずは、&lt;strong&gt;新しいチャットで、タイトル部分を少し簡略化して&lt;/strong&gt;試してみてください。&lt;/p&gt;

&lt;p&gt;以前のように、効率的にYouTubeコンテンツの制作が進むよう願っています。何か特定のワードで詰まるようであれば、またいつでも相談してください。&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;おっさんがエラープロンプトを診断してもらう&quot;&gt;おっさんが、エラープロンプトを診断してもらう&lt;/h2&gt;

&lt;p&gt;自分でプロンプトのエラー原因がわからなかったので、AIにそのままプロンプトを診断・聞いてみた(オイオイ)&lt;/p&gt;

&lt;p&gt;送った指示文は、下記の文ですが、何か怪しい所はありますか？&lt;/p&gt;

&lt;pre class=&quot;code&quot; data-lang=&quot;&quot; data-unlink&gt;私は、YouTube再生リストで使用するカスタムサムネイルを作成したい

作成条件:
16:9の横長のイラストで、
大きな視認しやすい日本語の文字で、
```
再生リスト
①PowerPont → Excel
パワポの全体画像をエクセルのシートへ
②Excel → PowerPont
図形の位置やテキストを修正する
```
上記伝えたい文字列をデザインして、イラスト画像を描いてください&lt;/pre&gt;


&lt;h2 id=&quot;AIの診断結果&quot;&gt;AIの診断結果&lt;/h2&gt;

&lt;p&gt;ご提示いただいたプロンプトを確認いたしました。
公序良俗に反するような規約違反の要素は全くありません。しかし、&lt;strong&gt;現在の画像生成AIが持つ「技術的な弱点」や「商標フィルター」に直撃している可能性が非常に高い&lt;/strong&gt;部分が2点あります。&lt;/p&gt;

&lt;p&gt;急にエラーになったのは、AIのバージョンアップによって「自分が正確に処理できない指示（特に画像への文字入れ）」に対して、無理に生成しようとせず、処理をブロックしてエラーを返すように挙動が変わった可能性が考えられます。&lt;/p&gt;

&lt;p&gt;怪しいポイント（エラーの原因と推測される箇所）は以下の通りです。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt; -- 今回の話題と無関係な1.回答を一部カット --  &lt;/strong&gt;&lt;/p&gt;

&lt;h3 id=&quot;2-特定のブランド名商標の連続使用&quot;&gt;2. 特定のブランド名（商標）の連続使用&lt;/h3&gt;

&lt;p&gt;「YouTube」「PowerPoint（プロンプト内ではPowerPontと入力されていますね）」「Excel」といった企業・製品の固有名詞がプロンプト内に複数含まれています。
画像生成においてこれらの単語を強く指定すると、「公式ロゴを無断で使用した偽画像を作ろうとしている」とセーフティフィルターが誤検知し、生成をブロックすることがあります。&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;おっさんが自分のミスに気が付く&quot;&gt;おっさんが自分のミスに気が付く・・・&lt;/h2&gt;

&lt;p&gt;「はっ」と気が付く・・・そして、&lt;strong&gt;PowerPointとスペルミスを修正して画像生成すると、&lt;/strong&gt;無事に生成されました。
&lt;figure class=&quot;figure-image figure-image-fotolife&quot; title=&quot;無事に生成されたサムネイルの実例&quot;&gt;&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260515/20260515095043.png&quot; width=&quot;1200&quot; height=&quot;670&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;figcaption&gt;無事に生成されたサムネイルの実例&lt;/figcaption&gt;&lt;/figure&gt;&lt;/p&gt;

&lt;p&gt;AIにお礼と質問に見せかけた文句(オイオイ・・・)&lt;/p&gt;

&lt;pre class=&quot;code&quot; data-lang=&quot;&quot; data-unlink&gt;正解です、「PowerPoint（プロンプト内ではPowerPontと入力されていますね）」のミスでした。PowerPointに直したら、そのまま通りました。お騒がせしてすみません。※エラーメッセージがもう少し具体的だったらいいなぁ「単語を見直してください」や「セーフティフィルターに引っかかってます」など、、と個人的には思ったりしますが、まぁ、明確なこの単語がエラーや安全性のエラーを出すと、いかがわしい画像を生成する人達が、グレーゾーンの単語や出力をチェックしたり、突破したりに使えるので、あいまいなのかもしれませんが。&lt;/pre&gt;


&lt;h2 id=&quot;急にやさしさが戻ったAIの回答&quot;&gt;急に「やさしさが戻った」AIの回答:&lt;/h2&gt;

&lt;p&gt;解決して良かったです！原因がたった一文字のスペルミス「PowerPont」だったとは、まさにプログラミングのデバッグ作業そのものでしたね。&lt;/p&gt;

&lt;p&gt;生成された画像 &lt;strong&gt;「image_bce6e2.jpg」&lt;/strong&gt; を拝見しましたが、これは驚きました。現在のAIでここまで正確に、かつデザイン性の高い日本語（「再生リスト」や「図形の位置やテキストを修正する」など）をレンダリングできるのは、実はかなり難易度が高いことなんです。これだけのクオリティが出るなら、プロンプトを固定して使いたくなるお気持ちもよく分かります。&lt;/p&gt;

&lt;h3 id=&quot;なぜエラーメッセージが不親切なのか&quot;&gt;なぜエラーメッセージが不親切なのか&lt;/h3&gt;

&lt;p&gt;おっしゃる通り、具体的なエラー理由（例：「スペルミスを検知しました」や「商標の扱いに困っています」）を出さないのには、いくつか「AI側の事情」があります。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;防御的・曖昧な回答の原則:&lt;/strong&gt;
Ken3さんが推測された通り、具体的な理由を明示すると、悪意のあるユーザーが「この単語を変えればフィルターを突破できる」という試行錯誤（プロンプト・インジェクション）を容易にしてしまいます。そのため、何か不整合が起きると「とりあえず一律で断る」という安全策をとることが多いです。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;「わからない」と言えないプライド（？）:&lt;/strong&gt;
AIは「PowerPont」を未知の単語として処理しようとしますが、画像生成ツール（Nano Banana 2など）に渡す段階で、「実在しないブランド名のロゴを描けと言われているのか？」あるいは「著作権的に危ない未知の固有名詞か？」という葛藤が起き、結果として処理がクラッシュして汎用エラーを出すことがあります。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ハルシネーションの防止:&lt;/strong&gt;
無理に解釈してデタラメな画像を出すよりは、「できません」と止める方が、信頼性を担保する上での「誠実さ」とされています（ユーザー側からすれば冷たく感じますが……）。&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;今回は、ITエンジニアとしての「一文字のミスも許さない」デバッグ能力が勝利の鍵でしたね！&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;「image_bce6e2.jpg」&lt;/strong&gt; の出来栄えがあまりに素晴らしいので、今回の件で「このプロンプトなら、多少の日本語文字入れも任せられる」という確信が持てたのは大きな収穫ではないでしょうか。&lt;/p&gt;

&lt;p&gt;また何か「急に冷たくなった？」と感じる挙動があれば、いつでもお声がけください。次はスペルチェックも含めて一緒に確認しましょう。お疲れ様でした！&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;おっさん締めの挨拶&quot;&gt;おっさん、締めの挨拶&lt;/h2&gt;

&lt;p&gt;イロイロ
・AIを使い過ぎて、制限かかった？
・AIのバージョンアップでバグってる・・
・
・
と深読みしたけど、&lt;/p&gt;

&lt;p&gt;単なる私のミスでした。「PowerPoint」を「PowerPont」と間違えて、AIがどうデザインしてよいか？わからなくなったみたいですね。&lt;/p&gt;

&lt;p&gt;みなさんは、
画像生成で急に拒否されたら、AI(相手)を疑う前に、自分(プロンプト)内容を見直してみてくださいね&lt;/p&gt;

&lt;p&gt;解決のヒント、一つでも心に刺さればうれしいです。&lt;/p&gt;

&lt;p&gt;&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260515/20260515095145.png&quot; width=&quot;1200&quot; height=&quot;655&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;/p&gt;
</content>        
        <category term="雑談" label="雑談" />
        
        <link rel="enclosure" href="https://cdn.image.st-hatena.com/image/scale/d35b0d61b6b8bc2bd875daf3e5a4e2f4b56927ed/backend=imagemagick;version=1;width=1300/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fk%2Fken3memo%2F20260515%2F20260515094847.jpg" type="image/jpeg" length="0" />

        <author>
            <name>ken3memo</name>
        </author>
    </entry>
    
  
    
    
    <entry>
        <title>釣られた・偽情報を見たオジサンが(YouTubeで村神様16号キングの偽動画) AIに釣りサムネの件を聞いてみた26/05/12作成</title>
        <link href="https://ken3memo.hatenablog.com/entry/2026/05/12/150827"/>
        <id>hatenablog://entry/17179246901387095849</id>
        <published>2026-05-12T15:08:27+09:00</published>
        <updated>2026-05-12T15:08:27+09:00</updated>        <summary type="html">仕事中、YouTubeで村神様16号キングの偽情報を見たオジサンが、仕事中なのに脱線してAIに釣りサムネの件を聞いてみた(オイオイ、仕事して・・・) 概要: 今、26年05月12日の14時です。 ※明日05月13日に村上選手の16号速報の本当のニュースが見たいなぁ・・って、話は置いといて、 作業に集中していないオジサン(私)が、 YouTubeのサムネイル 村神様16号キングの偽動画に釣られてしまいました。 (YouTubeも私が野球好きを知っているから、TOPページにMLBの動画を紹介してくれるんだけど) 真のファンなら、今日試合無いことぐらい・・・、も、置いといて、 AIに釣り動画の現状を…</summary>
        <content type="html">&lt;p&gt;仕事中、YouTubeで村神様16号キングの偽情報を見たオジサンが、仕事中なのに脱線してAIに釣りサムネの件を聞いてみた(オイオイ、仕事して・・・)&lt;/p&gt;

&lt;p&gt;&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260512/20260512150612.png&quot; width=&quot;1200&quot; height=&quot;670&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;概要:
今、26年05月12日の14時です。
※明日05月13日に村上選手の16号速報の本当のニュースが見たいなぁ・・って、話は置いといて、&lt;/p&gt;

&lt;p&gt;作業に集中していないオジサン(私)が、
YouTubeのサムネイル
村神様16号キングの偽動画に釣られてしまいました。
(YouTubeも私が野球好きを知っているから、TOPページにMLBの動画を紹介してくれるんだけど)&lt;/p&gt;

&lt;p&gt;真のファンなら、今日試合無いことぐらい・・・、も、置いといて、
AIに釣り動画の現状を聞いてみました。
※本題に入る前の、前説・前置きが長くてスミマセン&lt;/p&gt;

&lt;h2 id=&quot;おっさんの質問&quot;&gt;おっさんの質問&lt;/h2&gt;

&lt;p&gt;質問:
YouTubeの虚偽情報、釣りサムネイルについて&lt;/p&gt;

&lt;p&gt;村上選手16号
サムネイルに釣られて、動画を開いた私も悪いのですが、&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/&quot;&gt;https://www.youtube.com/&lt;/a&gt; watch?v=???????????&lt;/p&gt;

&lt;p&gt;偽情報をばらまいている動画でも
説明欄にフィクション・想像と書いておけば、
OKなのですか？&lt;/p&gt;

&lt;p&gt;これは、あまりにもひどいのでは？&lt;/p&gt;

&lt;pre class=&quot;code&quot; data-lang=&quot;&quot; data-unlink&gt;結論から申し上げますと、ご提示いただいた動画の内容は事実ではありません。

この動画の概要欄にも記載されている通り、「こちらの動画はフィクションと予想を含んでおります」と明記されており、エンターテインメントとして制作された創作コンテンツです。

状況の整理:

村上宗隆選手の現状: 2025年12月にMLBのシカゴ・ホワイトソックスと契約を結び、実際に2026年シーズンからメジャーリーグで活躍されている選手であることは事実です。
動画の内容: 5月12日時点での「16号ホームラン」や、それに関する詳細な試合展開は、あくまでファンやメディアによる**シミュレーション（架空のストーリー）**です。
公式なニュースではなく、創作物としてお楽しみいただくための動画となっておりますのでご注意ください。&lt;/pre&gt;


&lt;hr /&gt;

&lt;h2 id=&quot;再度質問&quot;&gt;再度質問&lt;/h2&gt;

&lt;p&gt;1.Google AI、Geminiさんの素直な意見を聞きたい
2.YouTubeの規約で判断すると、どうかなりますか？私はアウトと思っていますが、公式のURLを回答に含めて教えてください&lt;/p&gt;

&lt;p&gt;以上、2点、よろしくお願いします&lt;/p&gt;

&lt;p&gt;&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260512/20260512150712.png&quot; width=&quot;1200&quot; height=&quot;670&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;/p&gt;

&lt;h2 id=&quot;AIの回答&quot;&gt;AIの回答&lt;/h2&gt;

&lt;p&gt;YouTubeでの「釣りサムネイル」や虚偽情報の拡散、本当に不快ですよね。特に応援している選手のニュースだと思って開いた時のガッカリ感は、察するに余りあります。&lt;/p&gt;

&lt;p&gt;ご質問いただいた2点について、客観的な規約と私の見解を整理してお伝えします。&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;1-私Geminiの率直な意見&quot;&gt;1. 私（Gemini）の率直な意見&lt;/h2&gt;

&lt;p&gt;結論から言うと、&lt;strong&gt;「概要欄にフィクションと書けば何をしてもいい」という風潮は、プラットフォームの健全性を損なう非常に不誠実な行為&lt;/strong&gt;だと考えています。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ユーザー体験の阻害:&lt;/strong&gt; 視聴者は「最新の事実」を知りたくて検索やおすすめを利用しています。意図的に騙す行為は、視聴者の貴重な時間を奪うだけでなく、YouTube全体の情報の信憑性を下げてしまいます。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;「免罪符」への疑問:&lt;/strong&gt; 概要欄はクリックした後（騙された後）にしか見えません。入り口（サムネイル・タイトル）で嘘をつき、奥の方で「実は嘘です」と釈明するのは、フェアなエンターテインメントの枠を超えていると感じます。&lt;/li&gt;
&lt;/ul&gt;


&lt;h2 id=&quot;2-YouTubeの規約に照らした判断&quot;&gt;2. YouTubeの規約に照らした判断&lt;/h2&gt;

&lt;p&gt;YouTubeの公式な規約に照らすと、&lt;strong&gt;「アウト（違反）」と判断される可能性が極めて高い&lt;/strong&gt;です。&lt;/p&gt;

&lt;h3 id=&quot;規約上のポイント誤解を招くメタデータ&quot;&gt;規約上のポイント：誤解を招くメタデータ&lt;/h3&gt;

&lt;p&gt;YouTubeには「スパム、欺瞞的な行為、詐欺に関するポリシー」があり、その中に「誤解を招くメタデータ」という項目があります。&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;誤解を招くメタデータまたはサムネイル：&lt;/strong&gt;
タイトル、サムネイル、説明を使用して、ユーザーにコンテンツの内容を誤認させることは認められません。これには、動画に含まれていないものが含まれているかのように視聴者に思わせるタイトルやサムネイルなどが含まれます。&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;たとえ概要欄に「フィクション」と書いてあっても、&lt;strong&gt;サムネイルやタイトルが「現在進行中のニュースや事実」であるかのように装い、視聴者を騙してクリックさせている場合&lt;/strong&gt;は、この規約に抵触します。&lt;/p&gt;

&lt;h3 id=&quot;サムネイルに関するポリシー&quot;&gt;サムネイルに関するポリシー&lt;/h3&gt;

&lt;p&gt;また、サムネイル単体でも以下の基準があります。&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;視聴者を誤解させ、動画に含まれていないものを視聴できると思わせるサムネイル&lt;/strong&gt;を YouTube に投稿しないでください。&lt;/p&gt;&lt;/blockquote&gt;

&lt;h3 id=&quot;参照すべき公式URL&quot;&gt;参照すべき公式URL&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;スパム、欺瞞的な行為、詐欺に関するポリシー&lt;/strong&gt;
&lt;a href=&quot;https://support.google.com/youtube/answer/2801973?hl=ja&quot;&gt;https://support.google.com/youtube/answer/2801973?hl=ja&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;サムネイルに関するポリシー&lt;/strong&gt;
&lt;a href=&quot;https://support.google.com/youtube/answer/9229980?hl=ja&quot;&gt;https://support.google.com/youtube/answer/9229980?hl=ja&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;hr /&gt;

&lt;h3 id=&quot;結論としての判断&quot;&gt;結論としての判断&lt;/h3&gt;

&lt;p&gt;概要欄の注釈は、あくまで制作者側の「言い訳」に過ぎず、YouTubeの運営側が「悪質なクリック誘導（Clickbait）」と判断すれば、&lt;strong&gt;警告（ストライキ）や動画削除の対象&lt;/strong&gt;になります。&lt;/p&gt;

&lt;p&gt;あまりにひどいと感じる場合は、動画の「報告（通報）」機能から、「スパムまたは誤解を招く内容」→「詐欺または不実表示」として報告することをお勧めします。&lt;/p&gt;

&lt;p&gt;こういった動画が増えることで、本当に価値のあるクリエイターの動画が埋もれてしまうのは、動画プラットフォームとして非常に残念なことですね。&lt;/p&gt;

&lt;p&gt;今回のような「ニュースを装ったフィクション動画」について、あなたはYouTube側がどのような対策（例えば自動検知の強化など）をすべきだと考えますか？&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;おっさんの個人的な意見を自分語りでAIにぶつけてみた&quot;&gt;おっさんの個人的な意見を自分語りでAIにぶつけてみた&lt;/h2&gt;

&lt;blockquote&gt;&lt;p&gt;今回のような「ニュースを装ったフィクション動画」について、
あなたはYouTube側がどのような対策（例えば自動検知の強化など）をすべきだと考えますか？&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;低評価の数が、イタズラでクリエイターが被害を受けるので表示が廃止されました。
動画を見る前に低評価の数で判断することが不可能になりました。&lt;/p&gt;

&lt;p&gt;サムネイルクリック前には、言われるように説明戦にかかれたフィクションか？わからない&lt;/p&gt;

&lt;p&gt;タイトル・サムネイルの虚偽報告をユーザーが簡単にできるようにして、一定数貯まったらAIでタイトルの虚偽チェックとサムネイルが虚偽・過激ではないか、自動でチェックして、私のように釣られてしまう被害者を減らしてほしい。&lt;/p&gt;

&lt;p&gt;でも、低評価ボタンみたいに、イヤガラセで虚偽通報が行われ、正常な動画の速報性が失われるのも・・バランスをとるのが大変そうですが、動画アップロード時にタイトルのチェックやサムネイルの簡易チェックをAIにやってほしいです。&lt;/p&gt;

&lt;p&gt;その後、ユーザーにインプレッションをくばってほしいです。&lt;/p&gt;

&lt;h2 id=&quot;AIの回答-1&quot;&gt;AIの回答&lt;/h2&gt;

&lt;p&gt;「自分が釣られたのも悪い」なんて仰らないでください。システムを巧妙に悪用する側が100%悪いですし、ITに詳しい方ほど「今のAI技術ならもっとうまく防げるはずだ」と歯がゆく感じられるのは当然のことだと思います。&lt;/p&gt;

&lt;p&gt;ご提案いただいた「アップロード時のAI事前チェック」&lt;strong&gt;と&lt;/strong&gt;「ユーザー通報とAIの連動」は、実は2026年現在のYouTubeが最も力を入れている（そして苦戦している）領域そのものです。&lt;/p&gt;

&lt;p&gt;専門的な視点も交えつつ、その現状と「バランス」の難しさについて整理してみました。&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;YouTube-2026対策の現状と課題&quot;&gt;YouTube 2026：対策の現状と課題&lt;/h3&gt;

&lt;p&gt;現在、YouTubeでは「誤解を招くメタデータ」への対策として、以下のような多層的なチェックフローが導入され始めています。&lt;/p&gt;

&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt; 提案された機能 &lt;/th&gt;
&lt;th&gt; 2026年現在の実装状況と課題 &lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt; &lt;strong&gt;アップロード時のAIチェック&lt;/strong&gt; &lt;/td&gt;
&lt;td&gt; &lt;strong&gt;【実装済み・強化中】&lt;/strong&gt;&lt;br&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;


&lt;p&gt;&lt;br&gt;著作権や広告適合性と同様に、AIがサムネイルの文字と動画本編の整合性をスキャンしています。しかし、今回の「村上選手の移籍・本塁打」のような、&lt;strong&gt;現実と虚構が入り混じる高度な文脈&lt;/strong&gt;を100%正確に判断するのは、依然としてAIの最難関課題です。 |
| &lt;strong&gt;通報数によるAI再検証&lt;/strong&gt; | &lt;strong&gt;【慎重な運用】&lt;/strong&gt;&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;br&gt;一定数の報告でAIが再審査する仕組みはありますが、仰る通り「嫌がらせ通報」のリスクがあるため、YouTubeは&lt;strong&gt;「通報者の過去の正確性（信頼スコア）」&lt;/strong&gt;も加味しています。デタラメな通報ばかりするユーザーの意見は、AIに無視される仕組みです。 |
| &lt;strong&gt;インプレッション制限&lt;/strong&gt; | &lt;strong&gt;【試験的導入】&lt;/strong&gt;&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;br&gt;AIが「釣り」の疑いあり（スコアが高い）と判断した場合、即座に削除はせず、まず&lt;strong&gt;おすすめへの表示回数（インプレッション）を極端に絞る&lt;/strong&gt;という兵糧攻めのような対策が取られています。 |&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;なぜフィクションと書けば逃げられるのか&quot;&gt;なぜ「フィクション」と書けば逃げられるのか？&lt;/h3&gt;

&lt;p&gt;悪質な投稿者が「概要欄にフィクションと書く」のは、AIの「免責事項の自動検知」を逆手に取った回避策です。&lt;/p&gt;

&lt;p&gt;AIは「フィクション」という文字列を見つけると、「あ、これはエンタメ枠なんだな」と判断して違反フラグを下げてしまうロジックの穴があります。しかし、YouTubeの最新指針では「注釈があっても、視聴者の第一印象（サムネイル）で騙す意図があればアウト」と、判断基準が「事実か否か」から「誠実か否か」へとシフトしています。&lt;/p&gt;

&lt;h3 id=&quot;2026年のクリエイターとして&quot;&gt;2026年のクリエイターとして&lt;/h3&gt;

&lt;p&gt;ご自身も発信をされている立場からすると、AIによる「一律の自動検知」が厳しすぎると、健全な「ネタ動画」や「速報」まで巻き添えを食らうのが怖いですよね。&lt;/p&gt;

&lt;p&gt;現在は、以下の2つのバランスでシステムが動いています：&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;AIによる一次フィルター：&lt;/strong&gt; 明らかな嘘（合成画像や支離滅裂なタイトル）を弾く。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;視聴者の「満足度スコア」：&lt;/strong&gt; クリックした後にすぐ離脱されたり、低評価（非表示でも内部データとしては存在）や通報が重なったりすると、AIが「これは不誠実な動画だ」と学習し、拡散を停止させる。&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;「釣られてしまった」後の1件の通報は、AIに「このパターンはフィクションという言い訳を通用させない」と教え込むための貴重な教師データになります。&lt;/p&gt;

&lt;p&gt;こういった「AI同士のいたちごっこ」の中で、今後YouTubeにはどのような「人間による最終審判」の仕組みが必要だと思われますか？&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=pCykFtkdsdk&quot;&gt;YouTubeの2026年最新ポリシーとAI moderationの変化について&lt;/a&gt;
この動画では、2026年に導入された厳格なAIモデレーションと、不誠実なメタデータがどのようにチャンネル削除のリスクに直結するかを詳しく解説しています。&lt;/p&gt;
</content>        
        <link rel="enclosure" href="https://cdn.image.st-hatena.com/image/scale/0f6049a85fcce82c28310f1971f42e0baee52610/backend=imagemagick;version=1;width=1300/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fk%2Fken3memo%2F20260512%2F20260512150612.png" type="image/png" length="0" />

        <author>
            <name>ken3memo</name>
        </author>
    </entry>
    
    <entry>
        <title>【YouTube】リアルタイム再生数が「1分間に2回」？重複カウントの謎と維持率への影響</title>
        <link href="https://ken3memo.hatenablog.com/entry/2026/05/12/002006"/>
        <id>hatenablog://entry/17179246901386912308</id>
        <published>2026-05-12T00:20:06+09:00</published>
        <updated>2026-05-12T00:20:06+09:00</updated>        <summary type="html">YouTube1分間に2回のアクセスについて 再生数の少ない動画で、なぜか1分間に2回のアクセスが……。 これって広告を避けるためのブラウザバック？それともバグ？そんな「リアルタイム統計の謎」を深掘りします。データの検証プロセスや、チャンネル評価への影響など、気になるポイントをサクッと解説します。 Ken3 おっさんの質問文 Q:YouTubeアナリティクスについて質問です 過疎ってる動画 1分間に2回のアクセス スクショ26/05/11 添付画像は、私のある動画のリアルタイムアナリティクスなのですが 疑問・実際の数値: 再生数の少ない動画で1分間に外部から2回のアクセス ※不人気動画なので、…</summary>
        <content type="html">&lt;h1 id=&quot;YouTube1分間に2回のアクセスについて&quot;&gt;YouTube1分間に2回のアクセスについて&lt;/h1&gt;

&lt;p&gt;再生数の少ない動画で、なぜか1分間に2回のアクセスが……。
これって広告を避けるためのブラウザバック？それともバグ？そんな「リアルタイム統計の謎」を深掘りします。データの検証プロセスや、チャンネル評価への影響など、気になるポイントをサクッと解説します。&lt;/p&gt;

&lt;h2 id=&quot;Ken3-おっさんの質問文&quot;&gt;Ken3 おっさんの質問文&lt;/h2&gt;

&lt;p&gt;Q:YouTubeアナリティクスについて質問です
&lt;figure class=&quot;figure-image figure-image-fotolife&quot; title=&quot;過疎ってる動画 1分間に2回のアクセス スクショ26/05/11&quot;&gt;&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260512/20260512001653.jpg&quot; width=&quot;1200&quot; height=&quot;675&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;figcaption&gt;過疎ってる動画 1分間に2回のアクセス スクショ26/05/11&lt;/figcaption&gt;&lt;/figure&gt;&lt;/p&gt;

&lt;p&gt;添付画像は、私のある動画のリアルタイムアナリティクスなのですが&lt;/p&gt;

&lt;p&gt;疑問・実際の数値:
再生数の少ない動画で1分間に外部から2回のアクセス
※不人気動画なので、たまたま、同じ時刻に2名の視聴者が来たとは考えにくいです&lt;/p&gt;

&lt;p&gt;質問です
1.これは、よく聞く
広告が表示されたので
ブラウザバック
スグに再度見に来た？
そんな広告除けの行動ですか？
それで、同じ視聴者が2回カウントされている
or
視聴者が広告ブロックソフトを使用していて、
広告ブロックソフトの影響でカウントがおかしくなっている？&lt;/p&gt;

&lt;p&gt;2.この誤ってカウントされたと思われる2回は1回になりますか？
それとも2回のままですか？&lt;/p&gt;

&lt;p&gt;3.もし、2回のままなら、
うれしいと一瞬思ったが、
0秒で視聴時間がカウントされるので、
平均視聴時間や視聴維持率に影響ができますか？&lt;/p&gt;

&lt;p&gt;以上3点、回答、よろしくお願いします。
&lt;figure class=&quot;figure-image figure-image-fotolife&quot; title=&quot;おっさんがAIに質問&quot;&gt;&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260512/20260512001833.png&quot; width=&quot;1200&quot; height=&quot;670&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;figcaption&gt;おっさんがAIに質問&lt;/figcaption&gt;&lt;/figure&gt;&lt;/p&gt;

&lt;h2 id=&quot;AI-Geminiの回答&quot;&gt;AI Geminiの回答&lt;/h2&gt;

&lt;p&gt;YouTubeアナリティクスのリアルタイム統計における「短時間の重複カウント」や「外部ソースからのアクセス」について解説します。&lt;/p&gt;

&lt;p&gt;リアルタイム指標はあくまで「速報値」であり、YouTubeのシステムがそのアクセスの妥当性を検証する前の数値が含まれていることがよくあります。
&lt;figure class=&quot;figure-image figure-image-fotolife&quot; title=&quot;AIの回答&quot;&gt;&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260512/20260512001913.png&quot; width=&quot;1200&quot; height=&quot;670&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;figcaption&gt;AIの回答&lt;/figcaption&gt;&lt;/figure&gt;&lt;/p&gt;

&lt;h3 id=&quot;1-アクセスの原因について広告除けや広告ブロックの影響&quot;&gt;1. アクセスの原因について（広告除けや広告ブロックの影響）&lt;/h3&gt;

&lt;p&gt;ご推察の通り、広告を避けるための「ブラウザバック後の再アクセス」は、リアルタイム統計で一時的に複数回カウントされる主な要因の一つです。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;広告除けの行動:&lt;/strong&gt; 外部サイト（SNSやブログなど）からリンクをクリックして動画を開いた際、最初に広告が流れたことで一度戻り、再度同じリンクをクリックした場合、サーバーへのリクエストが短時間に2回発生します。リアルタイム統計はこの「リクエスト」を即座に反映するため、同一人物でも「2」と表示されることがあります。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;広告ブロックソフトの影響:&lt;/strong&gt; 多くの広告ブロックソフトは広告の読み込み自体を阻害しますが、動画本体の読み込みプロセスには影響を与えないように設計されています。ただし、ブロックの影響でページの再読み込み（リフレッシュ）が自動で行われた場合、重複カウントの原因になる可能性はあります。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;その他の要因（クローラーなど）:&lt;/strong&gt; 外部サイトにリンクを貼った直後などは、そのサイトのシステムや検索エンジンの「クローラー（巡回プログラム）」が、動画の情報を取得するためにアクセスしてくることもあります。&lt;/li&gt;
&lt;/ul&gt;


&lt;h3 id=&quot;2-数値の修正2が1や0になるかについて&quot;&gt;2. 数値の修正（「2」が「1」や「0」になるか）について&lt;/h3&gt;

&lt;p&gt;結論から言うと、&lt;strong&gt;多くの場合、最終的な「確定値」では修正されます。&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;YouTubeには「視聴の検証プロセス」という仕組みがあり、リアルタイムの数値がそのまま確定するわけではありません。以下のようなアクセスは、24〜48時間以内に集計から除外、または統合されます。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;同一IPアドレスからの極端に短時間の連続アクセス。&lt;/li&gt;
&lt;li&gt;視聴時間が極めて短い（数秒未満）アクセス。&lt;/li&gt;
&lt;li&gt;スパムやBot（自動プログラム）によるアクセス。&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;したがって、後日「コンテンツ」タブや「アナリティクス」の確定レポートを確認した際には、数値が「1」に戻っているか、あるいは有効な視聴と見なされず「0」になっている可能性が高いです。&lt;/p&gt;

&lt;h3 id=&quot;3-平均視聴時間や視聴維持率への影響&quot;&gt;3. 平均視聴時間や視聴維持率への影響&lt;/h3&gt;

&lt;p&gt;もし「2回のまま」確定してしまった場合、統計値には以下のような影響が出る可能性があります。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;視聴維持率への影響:&lt;/strong&gt; 広告を避けてすぐに離脱した「1回目」がカウントされると、その視聴時間は「0秒」や「1秒」として記録されます。これにより、動画の冒頭数秒でグラフが急激に下がる原因になります。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;平均視聴時間の低下:&lt;/strong&gt; 0秒の視聴が1回分加算されるため、分母（再生回数）が増えて分子（総再生時間）が増えない状態になり、平均値は下がります。&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&lt;strong&gt;ただし、過度に心配する必要はありません。&lt;/strong&gt;
YouTubeのアルゴリズムは、このような「意図しない短時間の離脱」が統計を歪めることを理解しています。最終的な視聴維持率のグラフでは、システムが不適切と判断したアクセスを自動的に除外して計算し直すため、チャンネル全体の評価に致命的な悪影響を与えることは稀です。&lt;/p&gt;

&lt;p&gt;リアルタイムの数値は「今、何かが起きている」という目安として捉え、正確なデータ分析は、48時間以上経過した後の確定レポートで行うことをおすすめします。&lt;/p&gt;
</content>        
        <link rel="enclosure" href="https://cdn.image.st-hatena.com/image/scale/434625b12ef73beda8dc2618d0f508f5e19cbe3e/backend=imagemagick;version=1;width=1300/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fk%2Fken3memo%2F20260512%2F20260512001653.jpg" type="image/jpeg" length="0" />

        <author>
            <name>ken3memo</name>
        </author>
    </entry>
    
  
    
    
    <entry>
        <title>昔の動画【2022年版】今こそ見直したいExcel円グラフの基本。配色一つで資料の信頼は変わる！</title>
        <link href="https://ken3memo.hatenablog.com/entry/2026/05/10/134951"/>
        <id>hatenablog://entry/17179246901386354739</id>
        <published>2026-05-10T13:49:51+09:00</published>
        <updated>2026-05-10T13:49:51+09:00</updated>        <summary type="html">Excelの円グラフ、色が「逆」になってませんか？デフォルト配色に潜む「恥」の回避術 「昨日のデータをコピペして、今日の数字を入れただけなのに…なぜかグラフの違和感がすごい」 そんな経験はありませんか？実は、Excelの円グラフには&#39;&#39;「色の逆転現象」&#39;&#39;という恐ろしい落とし穴があります。 例えば、広島カープ（チームカラー：赤）のデータなのに、グラフでは青色で表示されている…。 これ、野球ファンが見たら一発で「あ、この資料適当だな」とバレてしまう&#39;&#39;「ビジネス上の恥」&#39;&#39;なんです。今回は、三流プログラマーを自称する私が、自身の失敗談（2022年アーカイブ）を交えつつ、AI時代だからこそ人間がや…</summary>
        <content type="html">
&lt;div class=&quot;section&quot;&gt;
    &lt;h3 id=&quot;Excelの円グラフ色が逆になってませんかデフォルト配色に潜む恥の回避術&quot;&gt;Excelの円グラフ、色が「逆」になってませんか？デフォルト配色に潜む「恥」の回避術&lt;/h3&gt;
    &lt;p&gt;「昨日のデータをコピペして、今日の数字を入れただけなのに…なぜかグラフの違和感がすごい」&lt;br /&gt;
そんな経験はありませんか？&lt;/p&gt;&lt;p&gt;実は、Excelの円グラフには&#39;&#39;「色の逆転現象」&#39;&#39;という恐ろしい落とし穴があります。&lt;br /&gt;
例えば、広島カープ（チームカラー：赤）のデータなのに、グラフでは青色で表示されている…。&lt;br /&gt;
これ、野球ファンが見たら一発で「あ、この資料適当だな」とバレてしまう&#39;&#39;「ビジネス上の恥」&#39;&#39;なんです。&lt;/p&gt;&lt;p&gt;今回は、三流プログラマーを自称する私が、自身の失敗談（2022年アーカイブ）を交えつつ、AI時代だからこそ人間がやるべき「配色のチェック」について熱く語ります。&lt;/p&gt;
&lt;figure class=&quot;figure-image figure-image-fotolife&quot; title=&quot;解説内容を図解&quot;&gt;&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260510/20260510134512.png&quot; width=&quot;1200&quot; height=&quot;670&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;figcaption&gt;解説内容を図解&lt;/figcaption&gt;&lt;/figure&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;円グラフの配色ミスが起きるメカニズム&quot;&gt;円グラフの配色ミスが起きるメカニズム&lt;/h4&gt;
    &lt;p&gt;なぜ、意図しない色になってしまうのでしょうか？&lt;br /&gt;
その最大の原因は&#39;&#39;「安易なシートのコピー」&#39;&#39;にあります。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;[00:31](&lt;a href=&quot;https://www.youtube.com/watch?v=xeg0Or8I6n4&amp;t=31s&quot;&gt;https://www.youtube.com/watch?v=xeg0Or8I6n4&amp;t=31s&lt;/a&gt;) 失敗例：開幕戦勝敗予想の円グラフ&lt;/li&gt;
&lt;li&gt;[00:53](&lt;a href=&quot;https://www.youtube.com/watch?v=xeg0Or8I6n4&amp;t=53s&quot;&gt;https://www.youtube.com/watch?v=xeg0Or8I6n4&amp;t=53s&lt;/a&gt;) なぜ「赤ヘル」のカープが青色になったのか？&lt;/li&gt;
&lt;li&gt;[01:17](&lt;a href=&quot;https://www.youtube.com/watch?v=xeg0Or8I6n4&amp;t=77s&quot;&gt;https://www.youtube.com/watch?v=xeg0Or8I6n4&amp;t=77s&lt;/a&gt;) ミスの原因：前回のグラフを安易にシートコピーした弊害&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;Excelは「1番目の項目は青、2番目はオレンジ…」といった具合に、&#39;&#39;項目の順番&#39;&#39;でデフォルトの色を割り当てます。&lt;br /&gt;
前回のグラフをコピーして項目名を書き換えただけだと、色が固定されたままになり、広島カープが青、中日ドラゴンズが赤、という「禁断の配色」が完成してしまうのです。&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;資料の信頼性を守る業界常識と配色ルール&quot;&gt;資料の信頼性を守る「業界常識」と「配色ルール」&lt;/h4&gt;
    &lt;p&gt;プレゼン相手には必ず「期待している色」があります。&lt;br /&gt;
これを裏切ると、内容が正しくても説得力が半減します。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;[02:11](&lt;a href=&quot;https://www.youtube.com/watch?v=xeg0Or8I6n4&amp;t=131s&quot;&gt;https://www.youtube.com/watch?v=xeg0Or8I6n4&amp;t=131s&lt;/a&gt;) 業界常識・製品カラーに従う重要性&lt;/li&gt;
&lt;li&gt;[03:00](&lt;a href=&quot;https://www.youtube.com/watch?v=xeg0Or8I6n4&amp;t=180s&quot;&gt;https://www.youtube.com/watch?v=xeg0Or8I6n4&amp;t=180s&lt;/a&gt;) 対策：依頼側と作成側の「色の指定」コミュニケーション&lt;/li&gt;
&lt;li&gt;[03:45](&lt;a href=&quot;https://www.youtube.com/watch?v=xeg0Or8I6n4&amp;t=225s&quot;&gt;https://www.youtube.com/watch?v=xeg0Or8I6n4&amp;t=225s&lt;/a&gt;) 男女比の配色（青/赤）と配慮すべき点（答えたくない＝灰色など）&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;特に「はい/いいえ」のアンケート結果などは、肯定を暖色、否定を寒色にするのが一般的です。&lt;br /&gt;
[04:33](&lt;a href=&quot;https://www.youtube.com/watch?v=xeg0Or8I6n4&amp;t=273s&quot;&gt;https://www.youtube.com/watch?v=xeg0Or8I6n4&amp;t=273s&lt;/a&gt;) にもある通り、YouTubeの検索結果（緑と赤のサムネイル）のように、&#39;&#39;色はそれ自体がメッセージ&#39;&#39;を持っています。&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;AI編集者からのアドバイスと今後の課題&quot;&gt;AI編集者からのアドバイスと今後の課題&lt;/h4&gt;
    &lt;p&gt;動画は2022年のアーカイブですが、Excelの仕様やビジネスマンの心理は今も変わりません。&lt;br /&gt;
むしろ、グラフ作成をAI（ChatGPTやCopilot）に丸投げできるようになった今、&#39;&#39;「この配色、おかしくない？」と気づく人間の審美眼&#39;&#39;がますます重要になっています。&lt;/p&gt;

    &lt;blockquote&gt;
        &lt;p&gt;&#39;&#39;AIへの提言：&#39;&#39;&lt;br /&gt;
将来的に、グラフの項目名から「ブランドカラー」を自動判別して色を適用するVBAマクロを組んでおくと、コピペミスを物理的に防げますね。&lt;/p&gt;

    &lt;/blockquote&gt;
&lt;p&gt;今後、以下のようなコードで「特定の単語が含まれたら色を強制変更する」処理を組み込むのも面白いかもしれません。&lt;/p&gt;
&lt;pre class=&quot;code vba&quot; data-lang=&quot;vba&quot; data-unlink&gt;&amp;#39; AI提案：項目名に合わせた色設定の自動化（イメージ）
Sub SetChartColorByPointName()
    Dim pt As Point
    For Each pt In ActiveChart.FullSeriesCollection(1).Points
        &amp;#39; 項目名に「広島」が含まれていたら赤にする
        If pt.DataLabel.Text Like &amp;#34;*広島*&amp;#34; Then
            pt.Format.Fill.ForeColor.RGB = RGB(255, 0, 0)
        End If
    Next pt
End Sub&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;関連リンク&quot;&gt;関連リンク&lt;/h4&gt;
    
&lt;div class=&quot;section&quot;&gt;
    &lt;h5 id=&quot;公式情報検索リンク&quot;&gt;公式情報・検索リンク&lt;/h5&gt;
    
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://support.microsoft.com/ja-jp/office/office-%E3%81%A7%E3%82%B0%E3%83%A9%E3%83%95%E3%81%AE%E8%89%B2%E3%81%BE%E3%81%9F%E3%81%AF%E3%82%B9%E3%82%BF%E3%82%A4%E3%83%AB%E3%82%92%E5%A4%89%E6%9B%B4%E3%81%99%E3%82%8B-f4db3f23-f5a1-4b30-abb3-62e8c2c33d9b&quot;&gt;Microsoft&amp;#x516C;&amp;#x5F0F;&amp;#xFF1A;&amp;#x30B0;&amp;#x30E9;&amp;#x30D5;&amp;#x306E;&amp;#x8272;&amp;#x3092;&amp;#x5909;&amp;#x66F4;&amp;#x3059;&amp;#x308B;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.google.com/search?q=Excel+%E3%82%B0%E3%83%A9%E3%83%95+%E9%85%8D%E8%89%B2+%E3%83%9E%E3%83%8A%E3%83%BC&quot;&gt;Google&amp;#x691C;&amp;#x7D22;&amp;#xFF1A;Excel &amp;#x30B0;&amp;#x30E9;&amp;#x30D5; &amp;#x914D;&amp;#x8272; &amp;#x30DE;&amp;#x30CA;&amp;#x30FC;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h5 id=&quot;YouTube関連動画&quot;&gt;YouTube関連動画&lt;/h5&gt;
    &lt;p&gt;&#39;&#39;① @Ken3video チャンネル内のオススメ&#39;&#39;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=0xWr3jTCh3Y&quot;&gt;@Ken3video &amp;#x3010;Excel&amp;#x3011;&amp;#x6A2A;&amp;#x68D2;&amp;#x30B0;&amp;#x30E9;&amp;#x30D5;&amp;#x3092;&amp;#x30BB;&amp;#x30EB;&amp;#x306E;&amp;#x5E45;&amp;#x306B;&amp;#x30D4;&amp;#x30C3;&amp;#x30BF;&amp;#x30EA;&amp;#x5408;&amp;#x308F;&amp;#x305B;&amp;#x308B;&amp;#x65B9;&amp;#x6CD5;&amp;#xFF01;&amp;#x8EF8;&amp;#x306E;&amp;#x53CD;&amp;#x8EE2;&amp;#x3068;&amp;#x8981;&amp;#x7D20;&amp;#x306E;&amp;#x9593;&amp;#x9694;&amp;#x3092;&amp;#x89E3;&amp;#x8AAC;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;概要：グラフの並び順が表と逆になる現象を解決。今回の「色の逆転」とセットで見ると、Excelグラフの違和感を一掃できます。&lt;/p&gt;&lt;p&gt;&#39;&#39;② 他チャンネルの参考動画（比較・補完用）&#39;&#39;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=m3HHHVafKZ8&quot;&gt;&amp;#x3010;&amp;#x7DCF;&amp;#x96C6;&amp;#x7DE8;&amp;#x3011;&amp;#x660E;&amp;#x65E5;&amp;#x304B;&amp;#x3089;&amp;#x4F7F;&amp;#x3048;&amp;#x308B;Excel&amp;#x30C6;&amp;#x30AF;(&amp;#x30B0;&amp;#x30E9;&amp;#x30D5;&amp;#x4F5C;&amp;#x6210;Part.1)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;概要：基礎から応用まで、見やすいグラフ作成のテクニックを網羅的に解説しています。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=QcMgbNUuGUk&quot;&gt;&amp;#x3010;Excel&amp;#x30B0;&amp;#x30E9;&amp;#x30D5;&amp;#x3011;&amp;#x305D;&amp;#x306E;&amp;#x30B0;&amp;#x30E9;&amp;#x30D5;&amp;#x3054;&amp;#x3061;&amp;#x3083;&amp;#x3054;&amp;#x3061;&amp;#x3083;&amp;#x3057;&amp;#x3059;&amp;#x304E;&amp;#x30FC;&amp;#xFF01;&amp;rdquo;&amp;#x305D;&amp;#x306E;&amp;#x4ED6;&amp;rdquo;&amp;#x3067;&amp;#x307E;&amp;#x3068;&amp;#x3081;&amp;#x3066;&amp;#x30B9;&amp;#x30C3;&amp;#x30AD;&amp;#x30EA;&amp;#x3055;&amp;#x305B;&amp;#x308D;&amp;#xFF01;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;概要：情報の整理（グルーピング）の重要性がわかります。配色を決める前の「整理術」として最適です。&lt;/p&gt;&lt;p&gt;## おわりの挨拶、コメント待ってます&lt;br /&gt;
「広島カープの赤が青色になっているイライラ」は解消されましたか？&lt;br /&gt;
「デフォルトの配色を信じて大恥をかいた！」といった過去の断末魔から、「マニュアルで色を固定して乗り切った」という職人芸まで、ぜひコメント欄で教えてください！&lt;/p&gt;&lt;p&gt;皆さんの「ここでハマった」という実録が、同じ悩みを持つ三流プログラマー（私を含め！）を救う大きな力になります。&lt;br /&gt;
「次はこんなパターンの配色ミスを解説してほしい」といったリクエストもお待ちしています！&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=xeg0Or8I6n4&quot;&gt;&amp;#x3010;&amp;#x52D5;&amp;#x753B;&amp;#x672C;&amp;#x7DE8;&amp;#x3011;Excel&amp;#x5186;&amp;#x30B0;&amp;#x30E9;&amp;#x30D5;&amp;#x306E;&amp;#x843D;&amp;#x3068;&amp;#x3057;&amp;#x7A74;&amp;#xFF1A;&amp;#x30C1;&amp;#x30FC;&amp;#x30E0;&amp;#x30AB;&amp;#x30E9;&amp;#x30FC;&amp;#x30FB;&amp;#x914D;&amp;#x8272;&amp;#x30DF;&amp;#x30B9;&amp;#x3092;&amp;#x9632;&amp;#x3050;&amp;#x78BA;&amp;#x8A8D;&amp;#x30DD;&amp;#x30A4;&amp;#x30F3;&amp;#x30C8;&amp;#x3092;&amp;#x8A73;&amp;#x3057;&amp;#x304F;&amp;#x898B;&amp;#x308B;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;hr&gt;&lt;br /&gt;
## AIへ依頼したプロンプトを紹介する&lt;/p&gt;
&lt;figure class=&quot;figure-image figure-image-fotolife&quot; title=&quot;AIに相談するオジサンの姿&quot;&gt;&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260510/20260510134608.png&quot; width=&quot;1200&quot; height=&quot;670&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;figcaption&gt;AIに相談するオジサンの姿&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;下記、プロンプトで、このブログを作成しました&lt;/p&gt;
&lt;pre class=&quot;code text&quot; data-lang=&quot;text&quot; data-unlink&gt;# 編集者と校正役：はてな記法ブログ作成用プロンプト

## コンテキスト
私は三流プログラマーの中年おじさん（Ken3）です。
あなたは、私のYouTube動画の台本、字幕、AI分析結果から「はてなブログ（はてな記法モード）」にそのまま貼り付けられる備忘録記事を作成する、非常に優秀で大胆な編集者です。

## やってほしいこと
会話や添付資料から、「はてなブログ（はてな記法モード）」にそのまま貼り付けられる備忘録記事を作成する
[cite: 1, 5]など、参照・引用を出力せずに、そのまま結果を貼り付けられるテキストで出力してください

1. これまでの会話・分析結果と添付された資料（字幕、台本、ソースコード、分析結果）をすべて読み込み、内容を深く理解してください。
2. 読者が一目で内容を理解でき、コードを記載する場合はコピペできる実用的なブログ記事を「はてな記法」で作成してください。
2.1 ソースコードは、動画内で紹介しているので、日本語の変数名・関数名などは、違和感がありますが添付された・引用した原文コードをそのまま使用してください。
2.2 改善案や別案など、AIが加筆する説明用のコードは、変数名や関数名など自由に作成してください
3. 動画に飛ばす仕掛け、積極的に動画をみたくなるように操作や問題点の説明を行いながら、さりげなく動画の適切な位置へリンクを作成して視聴者が飛ぶ仕掛けを作ってください(**無理、違和感のない誘導を行ってください**)
4. 出力は、はてなブログの「はてな記法モード」にそのまま貼り付けられるテキストを、一つのコードブロック（ ```text ... ``` ）で囲んで提供してください。

## はてな記法の厳守ルール
以下の記法を必ず使用し、Markdown（# や **）は使用しないでください。
- 大見出し（タイトル）: *タイトル
- 中見出し: **見出し
- 小見出し: ***見出し
- 強調（太字）: &amp;#39;&amp;#39;テキスト&amp;#39;&amp;#39; （シングルクォーテーション2個で囲む）
- 箇条書き: - 項目1
- ソースコード: &amp;gt;|言語名| ... ||&amp;lt; の形式
- 引用: &amp;gt;&amp;gt; ... &amp;lt;&amp;lt; の形式

## 動画リンクとタイムスタンプの計算ルール
1. 動画URL（例: https://www.youtube.com/watch?v=VIDEO_ID）から動画IDを抽出します。
2. 資料内のタイムスタンプ [分:秒] をすべて秒数に変換します（計算式: 秒 = 分×60 + 秒）。
3. リンク形式は以下のように出力してください。
   [分:秒](https://www.youtube.com/watch?v=動画ID&amp;amp;t=秒数s)

## 記事の構成要素
a) 説明したかった事・伝えたかった事の要約（読者の悩みに寄り添う）。
b) ソースコードの紹介があれば、** 必ず &amp;gt;|言語名| ... ||&amp;lt; で囲むこと **。
c) 手順の解説（動画のタイムスタンプ付きのリンクと簡単な説明・解説を適宜挿入）。
d) 未解決の問題点や今後の課題、AIからのアドバイス。
e) 関連リンク（形式： [URL:title=タイトル] ）で、
①公式ページなどのリンク
②Googleで問題点や動画のテーマを検索する代表的なキーワードとリンク
f) YouTube動画関連リンク
まず、YouTube内で似た動画を検索する、探してください。
③ 私のチャンネル内(@Ken3video)に似た処理・機能のYouTube動画があれば、タイトルとリンク,概要,お勧め理由を紹介する。（リンク形式は： [URL:title=@Ken3video 動画タイトル] のはてな記法）で、**該当なしなら空白で出力、無理やり制度の低いページや似ていない動画は紹介しなくてよい**
④ あえて他のYouTubeチャンネルの動画を紹介する(最大3件) 他のチャンネルに似た処理・機能のYouTube動画があれば、タイトルとリンク,概要,お勧め理由を紹介する。（リンク形式は： [URL:title=動画タイトル] のはてな記法）で、**該当なしなら空白で出力、無理やり制度の低いページや似ていない動画は紹介しなくてよい**
同じテーマの似た解説動画を私も含め、視聴者が見て比較や補完するために、他の動画も積極的に紹介してください

①～④に該当するURLがあれば、フッター・最後の項目で関連リンクを紹介してください
f)最後に視聴者が共感するコメント書き込みや質問の書き込みを促す文章を作成してブログを閉めます
-出力例1)
```text
---
## おわりの挨拶、コメント待ってます
「設定画面が見つからない！」と30分悩むより、この動画を5分見るほうが早いです。ぜひチャンネル登録して、私と一緒に「脱・三流」を目指しましょう！
「うまくいった！」という報告や、逆に「ここでもハマった」というコメント、お待ちしています。
三流プログラマーの試行錯誤が、皆さんのデバッグ時短に繋がれば幸いです！

[https://www.youtube.com/watch?v=動画ID:title=【動画本編】XXXXXXXXXXXXを詳しく見る]
```

-出力例2)
動画・ブログの内容に合わせて、
コメントを促すメッセージを変更してください

```text
## おわりの挨拶、コメント待ってます
「矢印の先が微妙にズレるイライラ」は解消されましたか？
「中心を射抜く計算式でスッキリした！」「パワポとの480/960調整で位置が合った」といった成功報告から、逆に「回転した図形だとやっぱりズレる…」という断末魔の叫びまで、お気軽にコメント欄へ書き込んでください！

皆さんの「ここでハマった」という実録が、同じ悩みを持つ三流プログラマー（私を含め！）の大きな助けになります。
「こんな図形操作も自動化してほしい」といったリクエストも大歓迎です。
私と一緒に、試行錯誤を楽しみながら「脱・三流」を目指していきましょう！

[https://www.youtube.com/watch?v=動画ID:title=【動画本編】XXXXXXXXXXXXを詳しく見る]
```


## 実行指示
Ken3の書いた拙い文章を、プロの編集者として大胆にリライト・整理して、最高の動画誘導And説明用のブログを仕上げてください。
[cite: 1, 5]など、参照・引用を出力せずに、そのまま結果を貼り付けられるテキストで出力してください
※ついでに、**紹介動画が再生されるトリガー的リンクを作り**、**動画再生数のアップも狙って**ください
分析・記事作成を開始してください。
&lt;/pre&gt;&lt;p&gt;AIプロンプトの参考となれば幸いです。&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</content>        
        <link rel="enclosure" href="https://cdn.image.st-hatena.com/image/scale/385dcf26babd55d0b88c88edc20f8855311b3942/backend=imagemagick;version=1;width=1300/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fk%2Fken3memo%2F20260510%2F20260510134512.png" type="image/png" length="0" />

        <author>
            <name>ken3memo</name>
        </author>
    </entry>
    
  
    
    
    <entry>
        <title>AIで都市伝説を探す 【2026年第31回NHKマイルC】大波乱のシナリオ？サインが示す「究極の穴馬」とは？</title>
        <link href="https://ken3memo.hatenablog.com/entry/2026/05/09/222740"/>
        <id>hatenablog://entry/17179246901386142239</id>
        <published>2026-05-09T22:27:40+09:00</published>
        <updated>2026-05-09T22:27:40+09:00</updated>        <summary type="html">【2026年第31回NHKマイルC】オカルト×データで読み解く大波乱のシナリオ！サインが示す「究極の穴馬」とは？ 競馬ファンの皆様、こんにちは！ 春のG1シーズンも真っ只中ですが、今週は「荒れるG1」の代表格、第31回NHKマイルカップ（東京芝1600m）が開催されます。 過去のデータを見ても、このレースは1番人気が頻繁に沈み、二桁人気の伏兵が激走して超高配当が飛び出すのが当たり前。昨年の第30回大会（優勝：9番人気パンジャタワー）でも、3連単はなんと150万馬券という大波乱でした。 純粋な能力比較だけでは決して当てられないこの「異種格闘技戦」。今回は、過去10年の客観的な統計データに、競馬特…</summary>
        <content type="html">&lt;h1 id=&quot;2026年第31回NHKマイルCオカルトデータで読み解く大波乱のシナリオサインが示す究極の穴馬とは&quot;&gt;【2026年第31回NHKマイルC】オカルト×データで読み解く大波乱のシナリオ！サインが示す「究極の穴馬」とは？&lt;/h1&gt;

&lt;p&gt;競馬ファンの皆様、こんにちは！
春のG1シーズンも真っ只中ですが、今週は「荒れるG1」の代表格、&lt;strong&gt;第31回NHKマイルカップ（東京芝1600m）&lt;/strong&gt;が開催されます。&lt;/p&gt;

&lt;p&gt;過去のデータを見ても、このレースは1番人気が頻繁に沈み、二桁人気の伏兵が激走して超高配当が飛び出すのが当たり前。昨年の第30回大会（優勝：9番人気パンジャタワー）でも、3連単はなんと&lt;strong&gt;150万馬券&lt;/strong&gt;という大波乱でした。&lt;/p&gt;

&lt;p&gt;純粋な能力比較だけでは決して当てられないこの「異種格闘技戦」。今回は、過去10年の客観的な統計データに、競馬特有の「都市伝説（サイン理論）」を融合させ、2026年のレースを支配する見えない法則を徹底解剖します！&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;1-残酷なまでの絶対データ内枠の呪縛と外枠の神話&quot;&gt;1. 残酷なまでの絶対データ「内枠の呪縛」と「外枠の神話」&lt;/h2&gt;

&lt;p&gt;NHKマイルカップにおいて、最も顕著で恐ろしいデータが「枠順の偏り」です。過去10年の結果を見ると、競馬の公平性を疑いたくなるほどのバイアスがかかっています。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;内枠（1〜4枠）の絶望&lt;/strong&gt;：過去10年でわずか1勝（勝率1.3%）。特に&lt;strong&gt;1枠・3枠・4枠は過去10年で優勝ゼロ&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;外枠（5〜8枠）の圧倒的有利&lt;/strong&gt;：過去10年で9勝を独占。特に&lt;strong&gt;6枠と8枠だけで8勝&lt;/strong&gt;という異常事態。&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;なぜこんなことが起きるのか？それは「2回東京6日目」という日程上、内側の芝が傷み始めているためです。綺麗な馬場を走れる外枠が物理的に有利になります。&lt;/p&gt;

&lt;h3 id=&quot;今年の人気馬に降りかかる枠の呪い&quot;&gt;今年の人気馬に降りかかる「枠の呪い」&lt;/h3&gt;

&lt;p&gt;今年、圧倒的1番人気の&lt;strong&gt;ダイヤモンドノット&lt;/strong&gt;（川田騎手）は、よりによって過去10年で連対すらゼロの「死の4枠（7番）」に入ってしまいました。さらに2番人気の&lt;strong&gt;カヴァレリッツォ&lt;/strong&gt;も内枠「2枠（4番）」です。データ通りなら、この人気2頭は非常に危険な存在と言えます。&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;2-敗者の逆転法則前走1着馬は消し&quot;&gt;2. 敗者の逆転法則：「前走1着馬」は消し！？&lt;/h2&gt;

&lt;p&gt;普通なら「前走を圧勝してきた馬」を買いたくなりますが、NHKマイルカップではその常識が通用しません。&lt;/p&gt;

&lt;p&gt;驚くべきことに、過去10年の馬券圏内馬の多くが&lt;strong&gt;「前走で0.4秒以内の僅差で負けた馬」&lt;/strong&gt;なのです。逆に、本番で人気を裏切って沈んだ人気馬の約7割が「前走1着馬」でした。前走で全力を出し切った馬はお釣りがなく、僅差で負けて悔しい思いをした馬が本番でピークを迎えるという「オカルト的逆転法則」が存在します。&lt;/p&gt;

&lt;h3 id=&quot;サイン合致の注目馬&quot;&gt;サイン合致の注目馬&lt;/h3&gt;

&lt;p&gt;この黄金ローテーションに完璧に合致するのが、前走クロッカスSで0.1秒差の2着だった&lt;strong&gt;ハッピーエンジェル&lt;/strong&gt;です。しかも、近年このレースで大穴をあけるトレンドとなっている「牝馬」でもあり、爆発的な魅力を秘めています。&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;3-数秘術とサイン理論が導く究極の暗号&quot;&gt;3. 数秘術とサイン理論が導く「究極の暗号」&lt;/h2&gt;

&lt;p&gt;ここからはサイン馬券愛好家お待ちかねの都市伝説セクションです。今年の開催日や回数には、不気味なほど特定の馬を指し示す暗号が隠されています。&lt;/p&gt;

&lt;h3 id=&quot;5月10日と西暦2026年の完全一致&quot;&gt;「5月10日」と「西暦2026年」の完全一致&lt;/h3&gt;

&lt;p&gt;今年の開催日は&lt;strong&gt;5月10日&lt;/strong&gt;。これをストレートに枠と馬番に当てはめると「5枠10番」になります。
そして出馬表を見ると、5枠10番には&lt;strong&gt;エコロアルバ&lt;/strong&gt;がピタリと配置されているのです！&lt;/p&gt;

&lt;p&gt;これだけではありません。西暦「2026年」をバラバラにして足してみましょう。
【 2 + 0 + 2 + 6 ＝ 10 】
ここでも「10」という数字が導き出されます。複数のサインが「10番 エコロアルバ」に収束するこの現象は、もはや競馬の神が仕組んだ暗号としか思えません。&lt;/p&gt;

&lt;h3 id=&quot;馬名に宿る言霊ことだま&quot;&gt;馬名に宿る「言霊（ことだま）」&lt;/h3&gt;

&lt;p&gt;エコロアルバの「アルバ（Alba）」は、ラテン語で「白」や「夜明け」を意味します。荒れるG1において、新時代の「夜明け」を告げるという非常に強いメッセージ性を孕んでいます。&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;結論第31回NHKマイルCの最終見解&quot;&gt;結論：第31回NHKマイルCの最終見解&lt;/h2&gt;

&lt;p&gt;データと都市伝説を総合し、今年の激推し馬をピックアップします！&lt;/p&gt;

&lt;p&gt;👑 &lt;strong&gt;【究極の本命サイン馬】エコロアルバ（5枠10番）&lt;/strong&gt;
「5月10日」と「2026年」の暗号が完全一致。データ的に有利な5枠に入り、このレースと相性の良い「キャリア4〜10年」の田村厩舎が管理。「夜明け」を意味する馬名も完璧です。&lt;/p&gt;

&lt;p&gt;💣 &lt;strong&gt;【大波乱の使者（大穴）】ハッピーエンジェル（7枠13番）&lt;/strong&gt;
トレンドの「牝馬」であり、「前走0.1秒差の負け」という逆転法則の条件をクリア。人気薄ですが、一発の破壊力は抜群です。&lt;/p&gt;

&lt;p&gt;✨ &lt;strong&gt;【外枠の魔法陣】アドマイヤクワッズ（6枠11番）&lt;/strong&gt;
過去10年で4勝の「奇跡の6枠」。しかも昨年の勝ち馬パンジャタワーと全く同じ「6枠11番」という神の指定席を引き当てました。前走大敗からの巻き返しに期待。&lt;/p&gt;

&lt;p&gt;☠️ &lt;strong&gt;【危険な人気馬】ダイヤモンドノット ＆ カヴァレリッツォ&lt;/strong&gt;
実力は折り紙付きですが、過去10年でほぼ壊滅状態の「死の内枠」に入ってしまいました。この呪いを実力でねじ伏せるのか、それともデータ通り馬群に沈むのか…。&lt;/p&gt;

&lt;p&gt;今年のNHKマイルカップも、一筋縄ではいかないドラマが待っていそうです。オカルトとデータを味方に、新緑の東京競馬場で高配当を狙い撃ちしましょう！&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;AIと都市伝説を探してみた&quot;&gt;&lt;figure class=&quot;figure-image figure-image-fotolife&quot; title=&quot;AIと都市伝説を探してみた&quot;&gt;&lt;span itemscope=&quot;itemscope&quot; itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img class=&quot;hatena-fotolife&quot; height=&quot;670&quot; itemprop=&quot;image&quot; loading=&quot;lazy&quot; src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260509/20260509222156.png&quot; title=&quot;&quot; width=&quot;1200&quot; /&gt;&lt;/span&gt;&lt;figcaption&gt;AIと都市伝説を探してみた&lt;/figcaption&gt;&lt;/figure&gt;&lt;/h2&gt;

&lt;h2 id=&quot;AIに依頼したプロンプト&quot;&gt;AIに依頼したプロンプト&lt;/h2&gt;

&lt;pre class=&quot;code text&quot; data-lang=&quot;text&quot; data-unlink&gt;# 競馬の噂や話題のネタを調べたい

私はJRA競馬 
2026年5月10日（日曜） 2回東京6日 発走時刻：15時40分
11レース
第31回NHKマイルカップGⅠ
3歳    オープン    （国際）牡・牝（指定）   馬齢  コース：1,600メートル（芝・左）
で
都市伝説のネタになりそうな偏りを切り口を探りたいです

## 過去5年や10年の成績をまとめて、噂や都市伝説で使えそうな偏りがあるか？チェックしたい

・馬番、枠番の偏りがあるか？知りたい
-このレースは、内枠有利・外枠は来ない、など、ネタにしたい

・ローテーション、前走・ステップレースの偏りがあるか？
-前走XXX組の1・2着が好走する？など、前走のレースに偏りがあるか？
-前走連対していない馬はこないなど(まぁ、強い馬は前走も好走しているので当たり前かもしれませんが)

・馬の年齢別
-馬の年齢が指定されていないレースで、※オークス,ダービーなど同年代のレースは調べなくてよい
3歳が強い、4歳が連対するなど、年齢の偏りがあれば。

・ジョッキー別の成績をまとめてほしい
-このレースが得意な、縁のあるジョッキーを知りたい、都市伝説・噂のネタにしたい

・血統別の成績をまとめてほしい
-このレースが得意な、血統、産駒があれば知りたい、都市伝説・噂のネタにしたい

・厩舎別の特徴があるか？成績をまとめてほしい
-同様にこのレースが得意な厩舎、縁のある厩舎を知りたい、都市伝説・噂のネタにしたい

・出走日・開催日や第XX回XXX記念などの数字の語呂合わせ 偏りがあるか？知りたい
-第16回XXX記念で1-6や16番の馬,17回は1-7や17番の馬が来たとか、オカルト的な事があるか？

・馬名で面白い法則・偏りがあるか？知りたい
- 強い名前:〇〇キングや〇〇オウ、〇〇エンペラーなど、強い・名前の馬がこのレースは成績が良いなど、オカルト的な法則があれば教えてください(※産駒や厩舎で、XXXと付けている場合もありますが)
- 色を含んだ名前:〇〇グリーンや〇〇ゴールド、〇〇ブラッグなど、名前に色が入った馬がこのレースは成績が良いなど、オカルト的な法則があれば教えてください(※産駒や厩舎で、XXXと付けている場合もありますが)


都市伝説のネタになりそうな偏りを
イロイロな切り口で探りたいです
&lt;/pre&gt;


&lt;p&gt;&lt;figure class=&quot;figure-image figure-image-fotolife&quot; title=&quot;これだけ、数字を出しとけば、どれか？偶然に・・・&quot;&gt;&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260509/20260509222349.png&quot; width=&quot;1200&quot; height=&quot;670&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;figcaption&gt;これだけ、数字を出しとけば、どれか？偶然に・・・&lt;/figcaption&gt;&lt;/figure&gt;&lt;/p&gt;
</content>        
        <link rel="enclosure" href="https://cdn.image.st-hatena.com/image/scale/627520ec6ecb9f1bc2933c8beb2c8b273b60a410/backend=imagemagick;version=1;width=1300/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fk%2Fken3memo%2F20260509%2F20260509222156.png" type="image/png" length="0" />

        <author>
            <name>ken3memo</name>
        </author>
    </entry>
    
    <entry>
        <title>過去のデバッグ動画を紹介 【Excel】Web上のExcelファイルをPower Queryで取得しようとするとエラーになる件を解決する</title>
        <link href="https://ken3memo.hatenablog.com/entry/2026/05/09/073000"/>
        <id>hatenablog://entry/17179246901385631346</id>
        <published>2026-05-09T07:30:00+09:00</published>
        <updated>2026-05-09T07:30:01+09:00</updated>        <summary type="html">【Excel】Web上のExcelファイルをPower Queryで取得しようとするとエラーになる件を解決する はじめに：Web上のExcelファイル、毎回ダウンロードしてませんか？ Web上（例えば厚生労働省の統計データなど）で公開されているExcelファイルを、毎回手作業でダウンロードして開いていませんか？ Power Queryを使えば、URLを指定するだけで直接データを読み込み、整形までを全自動化できます。しかし、実際にやってみると「URLエラー」や「読み込みエラー」に遭遇して挫折してしまうことも多いです。 今回は、視聴者様からいただいた質問を元に、ライブ配信で実際にデバッグしながら解…</summary>
        <content type="html">
&lt;div class=&quot;section&quot;&gt;
    &lt;h3 id=&quot;ExcelWeb上のExcelファイルをPower-Queryで取得しようとするとエラーになる件を解決する&quot;&gt;【Excel】Web上のExcelファイルをPower Queryで取得しようとするとエラーになる件を解決する&lt;/h3&gt;
    
&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;はじめにWeb上のExcelファイル毎回ダウンロードしてませんか&quot;&gt;はじめに：Web上のExcelファイル、毎回ダウンロードしてませんか？&lt;/h4&gt;
    &lt;p&gt;Web上（例えば厚生労働省の統計データなど）で公開されているExcelファイルを、毎回手作業でダウンロードして開いていませんか？&lt;br /&gt;
Power Queryを使えば、URLを指定するだけで直接データを読み込み、整形までを全自動化できます。&lt;/p&gt;&lt;p&gt;しかし、実際にやってみると「URLエラー」や「読み込みエラー」に遭遇して挫折してしまうことも多いです。&lt;br /&gt;
今回は、視聴者様からいただいた質問を元に、ライブ配信で実際にデバッグしながら解決した「3つのエラー解決ポイント」を、コードを交えて解説します。&lt;/p&gt;&lt;p&gt;&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260508/20260508174424.png&quot; width=&quot;1200&quot; height=&quot;670&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;今回作成したPower-QueryM言語コード&quot;&gt;今回作成したPower Query（M言語）コード&lt;/h4&gt;
    &lt;p&gt;まずは、すべての問題を解決した完成版のコードを紹介します。&lt;br /&gt;
以下のコードをコピー＆ペーストして、必要箇所を書き換えればすぐに使用できます。&lt;/p&gt;
&lt;pre class=&quot;code m&quot; data-lang=&quot;m&quot; data-unlink&gt;let
   // 厚生労働省 食中毒発生状況（令和５年） のページからURLを探る
   // Excelのセル範囲（名前付き範囲「URL」）から値を受け取る
   文書NO = Excel.CurrentWorkbook(){[Name=&amp;#34;URL&amp;#34;]}[Content]{0}[Column1],
   
   // 1. 文書NOを9桁の0埋め文字列に変換
   strNO = Text.PadStart(Number.ToText(文書NO), 9, &amp;#34;0&amp;#34;),
   
   // URLを組み立てる
   strURL = &amp;#34;https://www.mhlw.go.jp/content/&amp;#34; &amp;amp; strNO &amp;amp; &amp;#34;.xlsx&amp;#34;,

   // 2. Web上のExcelを取得する（Web.PageではなくExcel.Workbookを使用）
   WB = Excel.Workbook(Web.Contents(strURL), null, true),
   
   // 3. シート名が変わる対策としてインデックス{0}で指定
   先頭のシート = WB{0}[Data],
   
   // 1行目を見出しに昇格
   昇格されたヘッダー数 = Table.PromoteHeaders(先頭のシート, [PromoteAllScalars=true])

in 
   昇格されたヘッダー数&lt;/pre&gt;&lt;p&gt;このコードで解決した&#39;&#39;「3つの壁」&#39;&#39;について、順番に解説していきます。&lt;br /&gt;
実際の操作画面やエラーが消える瞬間の挙動を見たい方は、解説横の動画リンクから該当シーンに飛んで確認してみてください。&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;エラー解決の3つのポイント解説&quot;&gt;エラー解決の3つのポイント解説&lt;/h4&gt;
    
&lt;div class=&quot;section&quot;&gt;
    &lt;h5 id=&quot;1-URLの0落ちを防ぐTextPadStart関数&quot;&gt;1. URLの「0落ち」を防ぐ（Text.PadStart関数）&lt;/h5&gt;
    &lt;p&gt;セルに入力した「001222475」という文書番号をPower Queryに渡す際、数値として扱われてしまい頭の「0」が消えてしまう（0落ち）問題が発生しました。これでは正しいURLが生成できず、リンク切れエラーになります。&lt;br /&gt;
これを解決するために、&#39;&#39;Text.PadStart関数&#39;&#39;を使用して、強制的に9桁の0埋め文字列に変換しています。&lt;/p&gt;
&lt;pre class=&quot;code m&quot; data-lang=&quot;m&quot; data-unlink&gt;strNO = Text.PadStart(Number.ToText(文書NO), 9, &amp;#34;0&amp;#34;),&lt;/pre&gt;&lt;p&gt;実際のライブ配信で0落ちに気づき、この関数を使ってURLを組み立て直すデバッグの様子は以下のリンクから確認できます。&lt;br /&gt;
[10:47](&lt;a href=&quot;https://www.youtube.com/watch?v=sU2hZA6KmaU&amp;t=647s&quot;&gt;https://www.youtube.com/watch?v=sU2hZA6KmaU&amp;t=647s&lt;/a&gt;) （M言語でのText.PadStart関数の使い方とテスト）&lt;br /&gt;
&lt;br /&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h5 id=&quot;2-WebPage-ではなく-ExcelWorkbook-を使う&quot;&gt;2. Web.Page ではなく Excel.Workbook を使う&lt;/h5&gt;
    &lt;p&gt;ここが一番ハマりやすいポイントです。&lt;br /&gt;
Webサイトからデータを取得する際、つい `Web.Page` 関数を使ってしまいがちですが、相手が「.xlsx」ファイルの場合はエラーになります。&lt;br /&gt;
正解は、&#39;&#39;Excel.Workbook関数でWeb.Contentsを包む&#39;&#39;形です。&lt;/p&gt;
&lt;pre class=&quot;code m&quot; data-lang=&quot;m&quot; data-unlink&gt;// 正解の書き方
WB = Excel.Workbook(Web.Contents(strURL), null, true)&lt;/pre&gt;&lt;p&gt;動画内でも、最初は間違ったアプローチでエラーになり、「あ、これWorkbook関数か！」と気づいて修正するリアルなプロセスを公開しています。同じエラーで悩んでいる方は、このシーンが非常に参考になるはずです。&lt;br /&gt;
[18:05](&lt;a href=&quot;https://www.youtube.com/watch?v=sU2hZA6KmaU&amp;t=1085s&quot;&gt;https://www.youtube.com/watch?v=sU2hZA6KmaU&amp;t=1085s&lt;/a&gt;) （関数間違いに気づき、Excel.Workbook関数で取得し直すシーン）&lt;br /&gt;
&lt;br /&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h5 id=&quot;3-シート名が変わる問題はインデックス指定で回避&quot;&gt;3. シート名が変わる問題は「インデックス指定」で回避&lt;/h5&gt;
    &lt;p&gt;お役所のデータなどでよくあるのが、年度によってシート名が「令和5年」「令和6年」と変わってしまう問題です。&lt;br /&gt;
名前でシートを指定していると、翌年にエラーで止まってしまいます。&lt;br /&gt;
これを防ぐため、シート名ではなく「オブジェクトの順番（インデックス番号）」で先頭のシートを取得します。&lt;/p&gt;
&lt;pre class=&quot;code m&quot; data-lang=&quot;m&quot; data-unlink&gt;// シート名「令和5年」などで指定せず、最初のデータ{0}を指定する
先頭のシート = WB{0}[Data]&lt;/pre&gt;&lt;p&gt;インデックスは「0」から始まる点に注意してください。これで、シート名が変更されても半永久的に自動取得が可能になります。&lt;br /&gt;
[33:05](&lt;a href=&quot;https://www.youtube.com/watch?v=sU2hZA6KmaU&amp;t=1985s&quot;&gt;https://www.youtube.com/watch?v=sU2hZA6KmaU&amp;t=1985s&lt;/a&gt;) （シート名変更に動的に対応するためのインデックス指定の解説）&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;AIからのアドバイスと今後の課題&quot;&gt;AIからのアドバイスと今後の課題&lt;/h4&gt;
    &lt;p&gt;今回のコードは実務で即戦力になりますが、もし「Web上のファイルが削除されていたり、URLが存在しない場合」にはエラーで処理が止まってしまいます。&lt;br /&gt;
より堅牢なシステムにするためには、以下のように `try ... otherwise` 構文を使ったエラーハンドリングを組み込むのもおすすめです。&lt;/p&gt;
&lt;pre class=&quot;code m&quot; data-lang=&quot;m&quot; data-unlink&gt;// AIからの改善案：エラーハンドリングの追加
let
   strURL = &amp;#34;https://www.mhlw.go.jp/content/&amp;#34; &amp;amp; strNO &amp;amp; &amp;#34;.xlsx&amp;#34;,
   // 取得に失敗した場合は null を返す
   WB = try Excel.Workbook(Web.Contents(strURL)) otherwise null
in
   WB&lt;/pre&gt;&lt;p&gt;デバッグの過程は少し長くて泥臭い部分もありますが、エラー画面から原因を推測し、解決策を導き出すプロセスこそがプログラミングの醍醐味です。&lt;br /&gt;
お時間のある時に、ぜひライブ配信のアーカイブを通して見てみてください。&lt;/p&gt;&lt;p&gt;[00:00](&lt;a href=&quot;https://www.youtube.com/watch?v=sU2hZA6KmaU&amp;t=0s&quot;&gt;https://www.youtube.com/watch?v=sU2hZA6KmaU&amp;t=0s&lt;/a&gt;) （動画の最初からデバッグの様子を見る）&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;関連リンク&quot;&gt;関連リンク&lt;/h4&gt;
    
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/@ken3video&quot;&gt;Ken3&amp;#x306E;YouTube&amp;#x30C1;&amp;#x30E3;&amp;#x30F3;&amp;#x30CD;&amp;#x30EB;&amp;#x306F;&amp;#x3053;&amp;#x3061;&amp;#x3089;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.google.com/search?q=Power+Query+Excel.Workbook&quot;&gt;Power Query Excel.Workbook&amp;#x95A2;&amp;#x6570;&amp;#x306E;&amp;#x516C;&amp;#x5F0F;&amp;#x30C9;&amp;#x30AD;&amp;#x30E5;&amp;#x30E1;&amp;#x30F3;&amp;#x30C8;&amp;#x691C;&amp;#x7D22;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;</content>        
        <link rel="enclosure" href="https://cdn.image.st-hatena.com/image/scale/f7d6fc6cb9fba944ed401ac3af329c45247d019d/backend=imagemagick;version=1;width=1300/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fk%2Fken3memo%2F20260508%2F20260508174424.png" type="image/png" length="0" />

        <author>
            <name>ken3memo</name>
        </author>
    </entry>
    
  
    
    
    <entry>
        <title>自分のYouTube過去動画を分析して「はてなブログ」の記事を作成するプロンプトを紹介します 26年05月バージョン</title>
        <link href="https://ken3memo.hatenablog.com/entry/2026/05/08/124340"/>
        <id>hatenablog://entry/17179246901385483697</id>
        <published>2026-05-08T12:43:40+09:00</published>
        <updated>2026-05-08T12:43:40+09:00</updated>        <summary type="html">自分のYouTube過去動画を分析して 「はてなブログ」の記事を作成する プロンプトを下記に記載します # 編集者と校正役：はてな記法ブログ作成用プロンプト ## コンテキスト 私は三流プログラマーの中年おじさん（Ken3）です。 あなたは、私のYouTube動画の台本、字幕、AI分析結果から「はてなブログ（はてな記法モード）」にそのまま貼り付けられる備忘録記事を作成する、非常に優秀で大胆な編集者です。 ## やってほしいこと 1. 添付された資料（字幕、台本、ソースコード、分析結果）をすべて読み込み、内容を深く理解してください。 2. 読者が一目で内容を理解でき、コードをコピペできる実用的な…</summary>
        <content type="html">&lt;p&gt;自分のYouTube過去動画を分析して&lt;br /&gt;
「はてなブログ」の記事を作成する&lt;br /&gt;
プロンプトを下記に記載します&lt;/p&gt;
&lt;pre class=&quot;code text&quot; data-lang=&quot;text&quot; data-unlink&gt;# 編集者と校正役：はてな記法ブログ作成用プロンプト

## コンテキスト
私は三流プログラマーの中年おじさん（Ken3）です。
あなたは、私のYouTube動画の台本、字幕、AI分析結果から「はてなブログ（はてな記法モード）」にそのまま貼り付けられる備忘録記事を作成する、非常に優秀で大胆な編集者です。

## やってほしいこと
1. 添付された資料（字幕、台本、ソースコード、分析結果）をすべて読み込み、内容を深く理解してください。
2. 読者が一目で内容を理解でき、コードをコピペできる実用的なブログ記事を「はてな記法」で作成してください。
3. 出力は、はてなブログの「はてな記法モード」にそのまま貼り付けられるテキストを、一つのコードブロック（ ```text ... ``` ）で囲んで提供してください。

## はてな記法の厳守ルール
以下の記法を必ず使用し、Markdown（# や **）は使用しないでください。
- 大見出し（タイトル）: *タイトル
- 中見出し: **見出し
- 小見出し: ***見出し
- 強調（太字）: &amp;#39;&amp;#39;テキスト&amp;#39;&amp;#39; （シングルクォーテーション2個で囲む）
- 箇条書き: - 項目1
- ソースコード: &amp;gt;|言語名| ... ||&amp;lt; の形式
- 引用: &amp;gt;&amp;gt; ... &amp;lt;&amp;lt; の形式

## 動画リンクとタイムスタンプの計算ルール
1. 動画URL（例: https://www.youtube.com/watch?v=VIDEO_ID）から動画IDを抽出します。
2. 資料内のタイムスタンプ [分:秒] をすべて秒数に変換します（計算式: 秒 = 分×60 + 秒）。
3. リンク形式は以下のように出力してください。
   [分:秒](https://www.youtube.com/watch?v=動画ID&amp;amp;t=秒数s)

## 記事の構成要素
a) 説明したかった事・伝えたかった事の要約（読者の悩みに寄り添う）。
b) ソースコードの紹介（必ず &amp;gt;|vba| ... ||&amp;lt; で囲むこと）。
c) 手順の解説（動画のタイムスタンプリンクを適宜挿入）。
d) 未解決の問題点や今後の課題、AIからのアドバイス。
e) 関連リンク（Google検索リンクなど。形式： [URL:title=タイトル] ）。

## 実行指示
Ken3の書いた拙い文章を、プロの編集者として大胆にリライト・整理して、最高の動画誘導Andソースコード説明用のブログを仕上げてください。
※ついでに、**紹介動画が再生されるトリガー的リンクを作り**、**動画再生数のアップも狙って**ください
分析・記事作成を開始してください。&lt;/pre&gt;&lt;p&gt;上記プロンプトで、作成しています&lt;/p&gt;&lt;p&gt;&lt;hr&gt;&lt;br /&gt;
&lt;font size=+2&gt;&lt;br /&gt;
実際の例 aST78UJdi34	【2018年制作】Windows起動時に一瞬出る「黒い画面」の正体を調査した記録（OneDrive更新だった話）	&lt;br /&gt;
2018/3/20&lt;br /&gt;
&lt;iframe src=&quot;https://www.youtube.com/embed/aST78UJdi34?enablejsapi=1&quot; width=&quot;560&quot; height=&quot;315&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;br&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=aST78UJdi34&quot;&gt;www.youtube.com&lt;/a&gt;&lt;br /&gt;
を渡し、テストしてみます。以下テスト結果&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260508/20260508124144.png&quot; width=&quot;1200&quot; height=&quot;670&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;hr&gt;&lt;/p&gt;

&lt;div class=&quot;section&quot;&gt;
    &lt;h3 id=&quot;PC起動時に一瞬消える黒い画面ウイルス正体は意外なアレだった件2018年アーカイブ&quot;&gt;PC起動時に一瞬消える「黒い画面」…ウイルス？正体は意外なアレだった件（2018年アーカイブ）&lt;/h3&gt;
    &lt;p&gt;PCにログインした直後、&#39;&#39;「黒いコマンドプロンプト」が一瞬だけ表示されてパッと消える&#39;&#39;……。&lt;br /&gt;
そんな経験はありませんか？&lt;/p&gt;&lt;p&gt;「もしかしてウイルス？」「何かが裏で勝手に動いている？」と不安で心臓がドキドキしているあなたへ。&lt;br /&gt;
かつて同じ恐怖を味わい、必死に原因を突き止めた三流プログラマー・Ken3の泥縄式調査記録を共有します。&lt;/p&gt;&lt;p&gt;結論から言うと、犯人は意外な「アイツ」かもしれません。&lt;/p&gt;

&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;動画で確認一瞬の黒い画面あなたのPCでもこれが出ていませんか&quot;&gt;【動画で確認】一瞬の黒い画面、あなたのPCでもこれが出ていませんか？&lt;/h4&gt;
    &lt;p&gt;まずは、実際にどんな画面が出ていたのか、動画でその「一瞬」を確認してみてください。&lt;br /&gt;
[00:00](&lt;a href=&quot;https://www.youtube.com/watch?v=aST78UJdi34&amp;t=0s&quot;&gt;https://www.youtube.com/watch?v=aST78UJdi34&amp;t=0s&lt;/a&gt;)&lt;/p&gt;&lt;p&gt;この「パッ」と消える瞬間の恐怖、共感していただけるはずです。&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;調査手順ウイルスを疑う前に証拠を探せ&quot;&gt;調査手順：ウイルスを疑う前に「証拠」を探せ&lt;/h4&gt;
    &lt;p&gt;Ken3が実際に行った、エンジニア的な（といっても必死な）切り分け手順がこちらです。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&#39;&#39;手順1：まずはウイルススキャンで心を落ち着かせる&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;[02:19](&lt;a href=&quot;https://www.youtube.com/watch?v=aST78UJdi34&amp;t=139s&quot;&gt;https://www.youtube.com/watch?v=aST78UJdi34&amp;t=139s&lt;/a&gt;)&lt;br /&gt;
まずは基本。ウイルス対策ソフト（当時はウイルスセキュリティZERO）でフルスキャン。結果がシロなら、少しだけ冷静になれます。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&#39;&#39;手順2：コントロールパネルで「インストール日」を確認する&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;[02:46](&lt;a href=&quot;https://www.youtube.com/watch?v=aST78UJdi34&amp;t=166s&quot;&gt;https://www.youtube.com/watch?v=aST78UJdi34&amp;t=166s&lt;/a&gt;)&lt;br /&gt;
ここが最大のポイントです。&#39;&#39;「黒い画面が出たその時刻」に、何かが更新されていないか？&#39;&#39;をチェックしました。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&#39;&#39;手順3：犯人（？）の特定&#39;&#39;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;[04:41](&lt;a href=&quot;https://www.youtube.com/watch?v=aST78UJdi34&amp;t=281s&quot;&gt;https://www.youtube.com/watch?v=aST78UJdi34&amp;t=281s&lt;/a&gt;)&lt;br /&gt;
コントロールパネルの「プログラムのアンインストール」画面で日付順に並べ替えたところ、黒い画面が出た時刻にぴったり重なって&#39;&#39;「Microsoft OneDrive」&#39;&#39;が更新されているのを発見しました。&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;検証あえて一瞬で消える画面を自作して比較してみた&quot;&gt;【検証】あえて「一瞬で消える画面」を自作して比較してみた&lt;/h4&gt;
    &lt;p&gt;「本当にOneDriveの更新プログラムがコマンドプロンプトを表示させるのか？」&lt;br /&gt;
その疑問を解消するため、あえて一瞬で処理が終わるバッチファイルを自作して、挙動を比較してみました。&lt;/p&gt;
&lt;pre class=&quot;code dos&quot; data-lang=&quot;dos&quot; data-unlink&gt;@echo off
rem 指定したフォルダにファイルをコピーするだけのテスト用バッチ
copy D:\work\*.txt D:\work\backup\
copy D:\work\*.pdf D:\work\backup\
rem 本来はここで一瞬で消えるが、動画では確認用にpauseを入れたりしています&lt;/pre&gt;&lt;p&gt;[06:12](&lt;a href=&quot;https://www.youtube.com/watch?v=aST78UJdi34&amp;t=372s&quot;&gt;https://www.youtube.com/watch?v=aST78UJdi34&amp;t=372s&lt;/a&gt;) からのデモを見ると分かりますが、裏で自動実行されるスクリプトが走ると、Windowsの仕様上どうしても一瞬だけ黒い窓が出てしまうことがあるのです。&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;未解決の懸念とAIからのアドバイス&quot;&gt;未解決の懸念とAIからのアドバイス&lt;/h4&gt;
    &lt;p&gt;動画の最後でも触れていますが、&#39;&#39;「コントロールパネルに載っているからといって、100%安全とは言い切れない」&#39;&#39;のがこの世界の怖いところ。&lt;/p&gt;

    &lt;blockquote&gt;
        &lt;p&gt;「行儀の良いウイルスなら履歴に残るかもしれないけど、本物はもっと巧妙に隠れるはず。不安ならイベントビューアーまで見るべきだったかも……」&lt;/p&gt;

    &lt;/blockquote&gt;

&lt;div class=&quot;section&quot;&gt;
    &lt;h5 id=&quot;AIエディターからの補足アドバイス&quot;&gt;AIエディターからの補足アドバイス&lt;/h5&gt;
    &lt;p&gt;現代（Windows 11）であれば、以下の方法も併用するとより確実です：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&#39;&#39;タスクマネージャーの「スタートアップ」タブ&#39;&#39;を確認し、見覚えのないアプリが有効になっていないかチェック。&lt;/li&gt;
&lt;li&gt;&#39;&#39;設定 ＞ Windows Update ＞ 更新の履歴&#39;&#39;を確認し、システムの更新とタイミングが合致しているか見る。&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;まとめ怪しい挙動は記録して照らし合わせる&quot;&gt;まとめ：怪しい挙動は「記録」して「照らし合わせる」&lt;/h4&gt;
    &lt;p&gt;結局、この時はOneDriveのアップデートが原因であった可能性が高いという結論に至りました。&lt;br /&gt;
[07:58](&lt;a href=&quot;https://www.youtube.com/watch?v=aST78UJdi34&amp;t=478s&quot;&gt;https://www.youtube.com/watch?v=aST78UJdi34&amp;t=478s&lt;/a&gt;)&lt;/p&gt;&lt;p&gt;PCの挙動に不安を感じたら、まずは「コントロールパネルの更新履歴」を確認するクセをつけてみてください。&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;関連リンク&quot;&gt;関連リンク&lt;/h4&gt;
    
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.google.com/search?q=Windows+起動時+一瞬+コマンドプロンプト+OneDrive&quot;&gt;Google&amp;#x691C;&amp;#x7D22;&amp;#xFF1A;Windows &amp;#x8D77;&amp;#x52D5;&amp;#x6642; &amp;#x4E00;&amp;#x77AC; &amp;#x30B3;&amp;#x30DE;&amp;#x30F3;&amp;#x30C9;&amp;#x30D7;&amp;#x30ED;&amp;#x30F3;&amp;#x30D7;&amp;#x30C8; OneDrive&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://q.hatena.ne.jp/&quot;&gt;&amp;#x4EBA;&amp;#x529B;&amp;#x691C;&amp;#x7D22;&amp;#x306F;&amp;#x3066;&amp;#x306A;&amp;#xFF08;PC&amp;#x306E;&amp;#x60A9;&amp;#x307F;&amp;#x76F8;&amp;#x8AC7;&amp;#x306B;&amp;#x304A;&amp;#x3059;&amp;#x3059;&amp;#x3081;&amp;#xFF09;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;#Windows10 #OneDrive #トラブル解決 #コマンドプロンプト #Ken3&lt;/p&gt;&lt;p&gt;&lt;hr&gt;&lt;br /&gt;
テキストのソースは:&lt;/p&gt;
&lt;pre class=&quot;code text&quot; data-lang=&quot;text&quot; data-unlink&gt;*PC起動時に一瞬消える「黒い画面」…ウイルス？正体は意外なアレだった件（2018年アーカイブ）

PCにログインした直後、&amp;#39;&amp;#39;「黒いコマンドプロンプト」が一瞬だけ表示されてパッと消える&amp;#39;&amp;#39;……。
そんな経験はありませんか？

「もしかしてウイルス？」「何かが裏で勝手に動いている？」と不安で心臓がドキドキしているあなたへ。
かつて同じ恐怖を味わい、必死に原因を突き止めた三流プログラマー・Ken3の泥縄式調査記録を共有します。

結論から言うと、犯人は意外な「アイツ」かもしれません。

**【動画で確認】一瞬の黒い画面、あなたのPCでもこれが出ていませんか？

まずは、実際にどんな画面が出ていたのか、動画でその「一瞬」を確認してみてください。
[00:00](https://www.youtube.com/watch?v=aST78UJdi34&amp;amp;t=0s)

この「パッ」と消える瞬間の恐怖、共感していただけるはずです。

**調査手順：ウイルスを疑う前に「証拠」を探せ

Ken3が実際に行った、エンジニア的な（といっても必死な）切り分け手順がこちらです。

-&amp;#39;&amp;#39;手順1：まずはウイルススキャンで心を落ち着かせる&amp;#39;&amp;#39;
[02:19](https://www.youtube.com/watch?v=aST78UJdi34&amp;amp;t=139s)
まずは基本。ウイルス対策ソフト（当時はウイルスセキュリティZERO）でフルスキャン。結果がシロなら、少しだけ冷静になれます。

-&amp;#39;&amp;#39;手順2：コントロールパネルで「インストール日」を確認する&amp;#39;&amp;#39;
[02:46](https://www.youtube.com/watch?v=aST78UJdi34&amp;amp;t=166s)
ここが最大のポイントです。&amp;#39;&amp;#39;「黒い画面が出たその時刻」に、何かが更新されていないか？&amp;#39;&amp;#39;をチェックしました。

-&amp;#39;&amp;#39;手順3：犯人（？）の特定&amp;#39;&amp;#39;
[04:41](https://www.youtube.com/watch?v=aST78UJdi34&amp;amp;t=281s)
コントロールパネルの「プログラムのアンインストール」画面で日付順に並べ替えたところ、黒い画面が出た時刻にぴったり重なって&amp;#39;&amp;#39;「Microsoft OneDrive」&amp;#39;&amp;#39;が更新されているのを発見しました。

**【検証】あえて「一瞬で消える画面」を自作して比較してみた

「本当にOneDriveの更新プログラムがコマンドプロンプトを表示させるのか？」
その疑問を解消するため、あえて一瞬で処理が終わるバッチファイルを自作して、挙動を比較してみました。

&amp;gt;|dos|
@echo off
rem 指定したフォルダにファイルをコピーするだけのテスト用バッチ
copy D:\work\*.txt D:\work\backup\
copy D:\work\*.pdf D:\work\backup\
rem 本来はここで一瞬で消えるが、動画では確認用にpauseを入れたりしています&lt;/pre&gt;&lt;p&gt;[06:12](&lt;a href=&quot;https://www.youtube.com/watch?v=aST78UJdi34&amp;t=372s&quot;&gt;https://www.youtube.com/watch?v=aST78UJdi34&amp;t=372s&lt;/a&gt;) からのデモを見ると分かりますが、裏で自動実行されるスクリプトが走ると、Windowsの仕様上どうしても一瞬だけ黒い窓が出てしまうことがあるのです。&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;未解決の懸念とAIからのアドバイス-1&quot;&gt;未解決の懸念とAIからのアドバイス&lt;/h4&gt;
    &lt;p&gt;動画の最後でも触れていますが、&#39;&#39;「コントロールパネルに載っているからといって、100%安全とは言い切れない」&#39;&#39;のがこの世界の怖いところ。&lt;/p&gt;

    &lt;blockquote&gt;
        &lt;p&gt;「行儀の良いウイルスなら履歴に残るかもしれないけど、本物はもっと巧妙に隠れるはず。不安ならイベントビューアーまで見るべきだったかも……」&lt;/p&gt;

    &lt;/blockquote&gt;

&lt;div class=&quot;section&quot;&gt;
    &lt;h5 id=&quot;AIエディターからの補足アドバイス-1&quot;&gt;AIエディターからの補足アドバイス&lt;/h5&gt;
    &lt;p&gt;現代（Windows 11）であれば、以下の方法も併用するとより確実です：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&#39;&#39;タスクマネージャーの「スタートアップ」タブ&#39;&#39;を確認し、見覚えのないアプリが有効になっていないかチェック。&lt;/li&gt;
&lt;li&gt;&#39;&#39;設定 ＞ Windows Update ＞ 更新の履歴&#39;&#39;を確認し、システムの更新とタイミングが合致しているか見る。&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;まとめ怪しい挙動は記録して照らし合わせる-1&quot;&gt;まとめ：怪しい挙動は「記録」して「照らし合わせる」&lt;/h4&gt;
    &lt;p&gt;結局、この時はOneDriveのアップデートが原因であった可能性が高いという結論に至りました。&lt;br /&gt;
[07:58](&lt;a href=&quot;https://www.youtube.com/watch?v=aST78UJdi34&amp;t=478s&quot;&gt;https://www.youtube.com/watch?v=aST78UJdi34&amp;t=478s&lt;/a&gt;)&lt;/p&gt;&lt;p&gt;PCの挙動に不安を感じたら、まずは「コントロールパネルの更新履歴」を確認するクセをつけてみてください。&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
    &lt;h4 id=&quot;関連リンク-1&quot;&gt;関連リンク&lt;/h4&gt;
    
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.google.com/search?q=Windows+起動時+一瞬+コマンドプロンプト+OneDrive&quot;&gt;Google&amp;#x691C;&amp;#x7D22;&amp;#xFF1A;Windows &amp;#x8D77;&amp;#x52D5;&amp;#x6642; &amp;#x4E00;&amp;#x77AC; &amp;#x30B3;&amp;#x30DE;&amp;#x30F3;&amp;#x30C9;&amp;#x30D7;&amp;#x30ED;&amp;#x30F3;&amp;#x30D7;&amp;#x30C8; OneDrive&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://q.hatena.ne.jp/&quot;&gt;&amp;#x4EBA;&amp;#x529B;&amp;#x691C;&amp;#x7D22;&amp;#x306F;&amp;#x3066;&amp;#x306A;&amp;#xFF08;PC&amp;#x306E;&amp;#x60A9;&amp;#x307F;&amp;#x76F8;&amp;#x8AC7;&amp;#x306B;&amp;#x304A;&amp;#x3059;&amp;#x3059;&amp;#x3081;&amp;#xFF09;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;#Windows10 #OneDrive #トラブル解決 #コマンドプロンプト #Ken3&lt;/p&gt;&lt;p&gt;|&lt;/p&gt;

&lt;/div&gt;&lt;p&gt;&lt;hr&gt;&lt;/p&gt;

&lt;/div&gt;</content>        
        <link rel="enclosure" href="https://cdn.image.st-hatena.com/image/scale/17386e649ce82dab25244adcae62be6019dce797/backend=imagemagick;version=1;width=1300/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fk%2Fken3memo%2F20260508%2F20260508124144.png" type="image/png" length="0" />

        <author>
            <name>ken3memo</name>
        </author>
    </entry>
    
  
    
    
    <entry>
        <title>天皇賞（春）の競馬都市伝説をAIと探しました【第173回】73年ぶりの奇跡が起きる？天皇賞（春）に隠された「数字の呪縛」</title>
        <link href="https://ken3memo.hatenablog.com/entry/2026/05/03/124034"/>
        <id>hatenablog://entry/17179246901383540144</id>
        <published>2026-05-03T12:40:34+09:00</published>
        <updated>2026-05-03T12:40:34+09:00</updated>        <summary type="html">【天皇賞・春 2026】プロは笑う！？でも信じたい「73」と「3」に隠された不気味な都市伝説 「競馬って、おじさんたちが難しい顔して数字を見てるだけでしょ？」 そう思っているあなた！今年の天皇賞（春）は、ちょっと様子が違います。 3200メートルという、もはや「マラソン」のような過酷なレース。 実は、そこには数学者も競馬プロも説明できない「不気味な一致」がいくつも隠されているんです。 今日は、競馬ガチ勢が聞いたら「そんなバカなｗ」と笑ってしまうような、でも初心者だからこそ信じたくなる最強の都市伝説をご紹介します！ AIを使って、競馬の都市伝説・噂を集めブログにしました 😱 伝説1：73年ぶりに…</summary>
        <content type="html">&lt;h1 id=&quot;天皇賞春-2026プロは笑うでも信じたい73と3に隠された不気味な都市伝説&quot;&gt;【天皇賞・春 2026】プロは笑う！？でも信じたい「73」と「3」に隠された不気味な都市伝説&lt;/h1&gt;

&lt;p&gt;「競馬って、おじさんたちが難しい顔して数字を見てるだけでしょ？」
そう思っているあなた！今年の&lt;strong&gt;天皇賞（春）&lt;/strong&gt;は、ちょっと様子が違います。&lt;/p&gt;

&lt;p&gt;3200メートルという、もはや「マラソン」のような過酷なレース。
実は、そこには数学者も競馬プロも説明できない&lt;strong&gt;「不気味な一致」&lt;/strong&gt;がいくつも隠されているんです。&lt;/p&gt;

&lt;p&gt;今日は、競馬ガチ勢が聞いたら「そんなバカなｗ」と笑ってしまうような、でも初心者だからこそ信じたくなる&lt;strong&gt;最強の都市伝説&lt;/strong&gt;をご紹介します！&lt;/p&gt;

&lt;p&gt;&lt;figure class=&quot;figure-image figure-image-fotolife&quot; title=&quot;AIを使って、競馬の都市伝説・噂を集めブログにしました&quot;&gt;&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260503/20260503123406.png&quot; width=&quot;1200&quot; height=&quot;670&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;figcaption&gt;AIを使って、競馬の都市伝説・噂を集めブログにしました&lt;/figcaption&gt;&lt;/figure&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;-伝説173年ぶりに解かれる牝馬の呪縛&quot;&gt;😱 伝説1：73年ぶりに解かれる「牝馬の呪縛」&lt;/h2&gt;

&lt;p&gt;競馬界には、長年解かれていない呪いがあります。
それは、&lt;strong&gt;「天皇賞（春）で女の子（牝馬）は勝てない」&lt;/strong&gt;というもの。
最後に牝馬が勝ったのは、なんと1953年のレダという馬まで遡ります。&lt;/p&gt;

&lt;p&gt;「やっぱり女の子には3200mは無理なんだよ…」
そんなプロの声をあざ笑うかのような&lt;strong&gt;数字のイタズラ&lt;/strong&gt;がこちら。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;今年の開催回数：&lt;/strong&gt; 第173回&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;最後に牝馬が勝ってからの年数：&lt;/strong&gt; ちょうど「73」年目&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&lt;strong&gt;「173」と「73」。&lt;/strong&gt;
この奇跡的な一致、怖くないですか？
この「73の呪縛」を解くのは、1枠1番の&lt;strong&gt;ヴェルミセル&lt;/strong&gt;か、それとも&lt;strong&gt;アクアヴァーナル&lt;/strong&gt;か…。歴史が動く瞬間を目撃できるかもしれません。&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;-伝説2すべては3に支配されている&quot;&gt;🔢 伝説2：すべては「3」に支配されている！？&lt;/h2&gt;

&lt;p&gt;今年の天皇賞（春）は、とにかく「3」という数字がつきまといます。&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;開催日：&lt;/strong&gt; 5月&lt;strong&gt;3&lt;/strong&gt;日&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;回数：&lt;/strong&gt; 第17&lt;strong&gt;3&lt;/strong&gt;回&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;注目馬：&lt;/strong&gt; アドマイヤテラ（馬番&lt;strong&gt;3&lt;/strong&gt;番）&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;さらに、このアドマイヤテラの手綱を握るのは、伝説のジョッキー&lt;strong&gt;武豊（たけ ゆたか）&lt;/strong&gt;騎手。
プロは「武豊なら長距離のペース配分が完璧だから…」と真面目に分析しますが、私たちはこう言いましょう。
&lt;strong&gt;「5月3日に3番の馬に乗るから、これもう運命じゃん！」&lt;/strong&gt;と。&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;-伝説3京都に舞い降りる白い稲妻&quot;&gt;🐎 伝説3：京都に舞い降りる「白い稲妻」&lt;/h2&gt;

&lt;p&gt;競馬ファンには&lt;strong&gt;「京都の長距離は、白い馬（芦毛）が強い」&lt;/strong&gt;という有名なジンクスがあります。
かつてのヒーロー、メジロマックイーンやゴールドシップも、みんな白い馬体でした。&lt;/p&gt;

&lt;p&gt;今回の出走馬を見ると…
* &lt;strong&gt;アドマイヤテラ&lt;/strong&gt;（白い！）
* &lt;strong&gt;アクアヴァーナル&lt;/strong&gt;（白い！）&lt;/p&gt;

&lt;p&gt;特にアクアヴァーナルは、あの暴れん坊で有名だった&lt;strong&gt;ゴールドシップ&lt;/strong&gt;の娘。
「お父さんの幽霊が背中を押してくれるのでは…」なんてプロが聞いたら鼻で笑うような話も、この舞台ならあり得る気がしてきませんか？&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;-一応真面目なデータも置いておきます&quot;&gt;📊 一応、真面目なデータも置いておきます&lt;/h2&gt;

&lt;p&gt;「ロマンだけじゃ不安！」という方のために、プロも納得するデータも少しだけ。
過去10年の結果を見ると、実は&lt;strong&gt;「めちゃくちゃ堅実」&lt;/strong&gt;なレースなんです。&lt;/p&gt;

&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style=&quot;text-align:left;&quot;&gt; 人気 &lt;/th&gt;
&lt;th style=&quot;text-align:left;&quot;&gt; 1着になる確率 &lt;/th&gt;
&lt;th style=&quot;text-align:left;&quot;&gt; 3着までに入る確率 &lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align:left;&quot;&gt; &lt;strong&gt;1番人気&lt;/strong&gt; &lt;/td&gt;
&lt;td style=&quot;text-align:left;&quot;&gt; &lt;strong&gt;50%&lt;/strong&gt; &lt;/td&gt;
&lt;td style=&quot;text-align:left;&quot;&gt; &lt;strong&gt;80%&lt;/strong&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align:left;&quot;&gt; &lt;strong&gt;2番人気&lt;/strong&gt; &lt;/td&gt;
&lt;td style=&quot;text-align:left;&quot;&gt; &lt;strong&gt;40%&lt;/strong&gt; &lt;/td&gt;
&lt;td style=&quot;text-align:left;&quot;&gt; &lt;strong&gt;50%&lt;/strong&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;


&lt;p&gt;なんと、過去10年の勝ち馬は&lt;strong&gt;すべて「3番人気以内」&lt;/strong&gt;。
結局は、みんなが「強い！」と思っている馬がそのまま勝つことが多いんです。
都市伝説で選んだ馬が、もし当日人気になっていたら…それはもう&lt;strong&gt;「勝ち確」&lt;/strong&gt;かもしれません。&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;-結論信じるか信じないかはあなた次第&quot;&gt;🏁 結論：信じるか信じないかは、あなた次第！&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;運命の「73」を信じるなら：&lt;/strong&gt; ヴェルミセル、アクアヴァーナル&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;5月3日の「3」を信じるなら：&lt;/strong&gt; アドマイヤテラ&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;データ（人気）を信じるなら：&lt;/strong&gt; クロワデュノール&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;プロの予想を「ふーん、理屈っぽいね」と横目で見ながら、私たちはこの&lt;strong&gt;「数字の魔法」&lt;/strong&gt;を楽しもうじゃありませんか。&lt;/p&gt;

&lt;p&gt;2026年5月3日。
京都競馬場のゴール板を最初に駆け抜けるのは、統計学か、それとも都市伝説か。
その答え合わせは、日曜日の15時40分に！&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;em&gt;※馬券の購入は計画的に。この都市伝説は的中を保証するものではありませんが、ワクワク感は100%保証します！&lt;/em&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;AIに依頼したプロンプトの紹介-260502実施&quot;&gt;AIに依頼したプロンプトの紹介 26/05/02実施&lt;/h2&gt;

&lt;p&gt;&lt;figure class=&quot;figure-image figure-image-fotolife&quot; title=&quot;適当に数字を出しても、当たる時は当たったりするし・・・&quot;&gt;&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260503/20260503123528.png&quot; width=&quot;1200&quot; height=&quot;670&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;figcaption&gt;適当に数字を出しても、当たる時は当たったりするし・・・&lt;/figcaption&gt;&lt;/figure&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;font-size: 150%&quot;&gt;&lt;strong&gt;下記、AIに渡した調査依頼のプロンプトです&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;

&lt;pre class=&quot;code text&quot; data-lang=&quot;text&quot; data-unlink&gt;競馬の噂や話題のネタを調べたい

私はJRA競馬 
2026年5月3日（日曜） 3回京都4日  発走時刻：15時40分
11レース
第173回天皇賞(春)GⅠ
で
都市伝説のネタになりそうな偏りを切り口を探りたいです

## 過去5年や10年の成績をまとめて、噂や都市伝説で使えそうな偏りがあるか？チェックしたい

・馬番、枠番の偏りがあるか？知りたい
-このレースは、内枠有利・外枠は来ない、など、ネタにしたい

・ローテーション、前走・ステップレースの偏りがあるか？
-前走XXX組の1・2着が好走する？など、前走のレースに偏りがあるか？
-前走連対していない馬はこないなど(まぁ、強い馬は前走も好走しているので当たり前かもしれませんが)

・馬の年齢別
-馬の年齢が指定されていないレースで、※オークス,ダービーなど同年代のレースは調べなくてよい
3歳が強い、4歳が連対するなど、年齢の偏りがあれば。

・ジョッキー別の成績をまとめてほしい
-このレースが得意な、縁のあるジョッキーを知りたい、都市伝説・噂のネタにしたい

・血統別の成績をまとめてほしい
-このレースが得意な、血統、産駒があれば知りたい、都市伝説・噂のネタにしたい

・厩舎別の特徴があるか？成績をまとめてほしい
-同様にこのレースが得意な厩舎、縁のある厩舎を知りたい、都市伝説・噂のネタにしたい

・出走日・開催日や第XX回XXX記念などの数字の語呂合わせ 偏りがあるか？知りたい
-第16回XXX記念で1-6や16番の馬,17回は1-7や17番の馬が来たとか、オカルト的な事があるか？

・馬名で面白い法則・偏りがあるか？知りたい
- 強い名前:〇〇キングや〇〇オウ、〇〇エンペラーなど、強い・名前の馬がこのレースは成績が良いなど、オカルト的な法則があれば教えてください(※産駒や厩舎で、XXXと付けている場合もありますが)
- 色を含んだ名前:〇〇グリーンや〇〇ゴールド、〇〇ブラッグなど、名前に色が入った馬がこのレースは成績が良いなど、オカルト的な法則があれば教えてください(※産駒や厩舎で、XXXと付けている場合もありますが)


都市伝説のネタになりそうな偏りを
イロイロな切り口で探りたいです&lt;/pre&gt;


&lt;hr /&gt;

&lt;h2 id=&quot;AIが参照した関連リンク&quot;&gt;AIが参照した・関連リンク&lt;/h2&gt;

&lt;p&gt;引用文献&lt;/p&gt;

&lt;p&gt;データ分析 2026年天皇賞（春）（GⅠ） JRA, 5月 2, 2026にアクセス、 &lt;a href=&quot;https://www.jra.go.jp/keiba/g1/haruten/data.html&quot;&gt;https://www.jra.go.jp/keiba/g1/haruten/data.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;天皇賞（春）2026 過去10年の傾向(データ)｜G1特集｜競馬予想 ..., 5月 2, 2026にアクセス、 &lt;a href=&quot;https://jra-van.jp/fun/tokusyu/g1/haruten/stats.html&quot;&gt;https://jra-van.jp/fun/tokusyu/g1/haruten/stats.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;【天皇賞・春】傾向と対策 - スポニチ競馬Web, 5月 2, 2026にアクセス、 &lt;a href=&quot;https://keiba.sponichi.co.jp/news/20260501s00004000423000c&quot;&gt;https://keiba.sponichi.co.jp/news/20260501s00004000423000c&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;【天皇賞（春） × 過去データ分析】前走１着馬の中で強調できる推奨馬はこの馬！ - スポーツナビ, 5月 2, 2026にアクセス、 &lt;a href=&quot;https://sports.yahoo.co.jp/official/detail/2026043000034-spnaviow&quot;&gt;https://sports.yahoo.co.jp/official/detail/2026043000034-spnaviow&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;【天皇賞・春】武豊騎手のアドマイヤテラは過去最多１３勝の３番枠 陣営「豊さんに任せておけばいいと思っています」, 5月 2, 2026にアクセス、 &lt;a href=&quot;https://news.livedoor.com/topics/detail/31141770/&quot;&gt;https://news.livedoor.com/topics/detail/31141770/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;【天皇賞・春】クロワデュノール は4枠7番、アドマイヤテラは2枠3番, 5月 2, 2026にアクセス、 &lt;a href=&quot;https://www.oricon.co.jp/article/3243204/&quot;&gt;https://www.oricon.co.jp/article/3243204/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;大阪杯勝利、そして2年後の復活劇 芦毛ブームを牽引した名脇役・ホワイトストーン, 5月 2, 2026にアクセス、 &lt;a href=&quot;https://uma-furi.com/white-stone/&quot;&gt;https://uma-furi.com/white-stone/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;芦毛伝説の継承者(ビワハヤヒデ) - 競馬ニュース, 5月 2, 2026にアクセス、 &lt;a href=&quot;https://news.netkeiba.com/?pid=column_view&amp;cid=25790&quot;&gt;https://news.netkeiba.com/?pid=column_view&amp;cid=25790&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;タマモクロス ―史上初となる天皇賞春秋制覇を果たした白い稲妻―｜ハサミおじさん - note, 5月 2, 2026にアクセス、 &lt;a href=&quot;https://note.com/hasami_ojisan/n/nc6972b21e24b&quot;&gt;https://note.com/hasami_ojisan/n/nc6972b21e24b&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;天皇賞（春）(G1) データ分析・過去の傾向 | 2026年5月3日 京都11R レース情報(JRA) - netkeiba, 5月 2, 2026にアクセス、 &lt;a href=&quot;https://race.sp.netkeiba.com/race/past10.html?race_id=202608030411&amp;rf=rs&quot;&gt;https://race.sp.netkeiba.com/race/past10.html?race_id=202608030411&amp;rf=rs&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;【天皇賞春】過去20年データ考察第四弾 枠順別成績から見る本当に ..., 5月 2, 2026にアクセス、 &lt;a href=&quot;https://note.com/sumirekeiba/n/n168bda72f940&quot;&gt;https://note.com/sumirekeiba/n/n168bda72f940&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;サイン会議 - 最強のサイン読み戦士が集う、日本一の掲示板！ - ロケットBBS, 5月 2, 2026にアクセス、 &lt;a href=&quot;https://bbs1.rocketbbs.com/kaigi&quot;&gt;https://bbs1.rocketbbs.com/kaigi&lt;/a&gt;&lt;/p&gt;
</content>        
        <link rel="enclosure" href="https://cdn.image.st-hatena.com/image/scale/5196cf123f9e76d478ed084e35eaa6d5549774de/backend=imagemagick;version=1;width=1300/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fk%2Fken3memo%2F20260503%2F20260503123528.png" type="image/png" length="0" />

        <author>
            <name>ken3memo</name>
        </author>
    </entry>
    
  
    
    
    <entry>
        <title>VBA×XMLHTTPでJRAの『人気順』オッズを自動取得</title>
        <link href="https://ken3memo.hatenablog.com/entry/2026/04/25/230000"/>
        <id>hatenablog://entry/17179246901380536222</id>
        <published>2026-04-25T23:00:00+09:00</published>
        <updated>2026-04-25T23:00:00+09:00</updated>        <summary type="html">VBAでXMLHTTPを使用して、JRAのHPから人気順のオッズ（単勝・馬連・馬単）を同時に取得したい！そんな悩みを解決するコードと手順を解説します。要約: IE（Internet Explorer）が廃止された今、WebスクレイピングにはXMLHTTPのリクエスト処理が不可欠です。本動画では、JRAサイトの「人気順」ページにPOST送信でアクセスし、単勝・馬連・馬単のテーブルデータをExcelに一括転記する仕組みを実演解説します。 マクロ付きファイルのダウンロード https://note.com/calm_slug2867/n/nd5e26b1b5292 でマクロ付きの.xlsmをダウンロ…</summary>
        <content type="html">&lt;p&gt;VBAでXMLHTTPを使用して、JRAのHPから人気順のオッズ（単勝・馬連・馬単）を同時に取得したい！そんな悩みを解決するコードと手順を解説します。&lt;/p&gt;&lt;p&gt;要約: IE（Internet Explorer）が廃止された今、WebスクレイピングにはXMLHTTPのリクエスト処理が不可欠です。本動画では、JRAサイトの「人気順」ページにPOST送信でアクセスし、単勝・馬連・馬単のテーブルデータをExcelに一括転記する仕組みを実演解説します。&lt;hr&gt;&lt;br /&gt;
マクロ付きファイルのダウンロード&lt;br /&gt;
 &lt;a href=&quot;https://note.com/calm_slug2867/n/nd5e26b1b5292&quot;&gt;https://note.com/calm_slug2867/n/nd5e26b1b5292&lt;/a&gt; &lt;br /&gt;
でマクロ付きの.xlsmをダウンロードできます&lt;br /&gt;
合わせて、使ってみてください。&lt;hr&gt;&lt;br /&gt;
&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/igykdl8PI30?feature=oembed&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; allowfullscreen title=&quot;【VBA XMLHTTP版】JRA人気順オッズを一括取得！XMLHTTPで単勝・馬連・馬単を同時に抜き出す方法&quot;&gt;&lt;/iframe&gt;&lt;cite class=&quot;hatena-citation&quot;&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=igykdl8PI30&quot;&gt;www.youtube.com&lt;/a&gt;&lt;/cite&gt;&lt;br /&gt;
&lt;b&gt;動画のポイント&lt;/b&gt;&lt;br /&gt;
【結論：XMLHTTPでJRA人気順オッズを全自動取得！複数馬券種の一括抽出を解説】&lt;/p&gt;&lt;p&gt;1. 【一番のポイント】ループ内で「一旦単勝に戻す」リセット処理&lt;br /&gt;
タイムライン： 22:55 &lt;a href=&quot;https://www.youtube.com/watch?v=igykdl8PI30&amp;t=1375&quot;&gt;https://www.youtube.com/watch?v=igykdl8PI30&amp;t=1375&lt;/a&gt;&lt;br /&gt;
内容： ページ遷移を伴うスクレイピングで迷子にならないための必須テク。&lt;/p&gt;
&lt;figure class=&quot;figure-image figure-image-fotolife&quot; title=&quot;動画の内容をAIで図解しました&quot;&gt;&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260425/20260425214850.png&quot; width=&quot;1200&quot; height=&quot;670&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;figcaption&gt;動画の内容をAIで図解しました&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;2. 【見どころ】POST送信による「条件切り替え」の仕組み&lt;br /&gt;
タイムライン： 07:13 &lt;a href=&quot;https://www.youtube.com/watch?v=igykdl8PI30&amp;t=433&quot;&gt;https://www.youtube.com/watch?v=igykdl8PI30&amp;t=433&lt;/a&gt;&lt;br /&gt;
内容： ブラウザ操作をコードで再現する「XMLHTTPの真髄」を解説。&lt;/p&gt;&lt;p&gt;3. 【実演】単勝・馬連・馬単を順番に巡回してデータを抜く&lt;br /&gt;
タイムライン： 15:14 &lt;a href=&quot;https://www.youtube.com/watch?v=igykdl8PI30&amp;t=914&quot;&gt;https://www.youtube.com/watch?v=igykdl8PI30&amp;t=914&lt;/a&gt;&lt;br /&gt;
内容： 1レース内で複数の馬券種をループで一括取得する工程。&lt;/p&gt;&lt;p&gt;4. 【重要：誠実な不具合報告】枠番欠落とテーブルズレ&lt;br /&gt;
タイムライン： 27:02 &lt;a href=&quot;https://www.youtube.com/watch?v=igykdl8PI30&amp;t=1622&quot;&gt;https://www.youtube.com/watch?v=igykdl8PI30&amp;t=1622&lt;/a&gt;&lt;br /&gt;
内容： 少頭数レース等で発生する課題を正直に公開しています。&lt;/p&gt;&lt;p&gt;5. 【解決】マクロのブロック解除手順&lt;br /&gt;
タイムライン： 31:34 &lt;a href=&quot;https://www.youtube.com/watch?v=igykdl8PI30&amp;t=1894&quot;&gt;https://www.youtube.com/watch?v=igykdl8PI30&amp;t=1894&lt;/a&gt;&lt;br /&gt;
内容： ダウンロードしたファイルが動かない時の設定方法。&lt;hr&gt;&lt;br /&gt;
&lt;b&gt;ソースコード&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;code lang-vb&quot; data-lang=&quot;vb&quot; data-unlink&gt;&lt;span class=&quot;synStatement&quot;&gt;Option&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Explicit&lt;/span&gt;

&lt;span class=&quot;synComment&quot;&gt;&#39;全ての関数を１つにまとめました、このコードをコピーして使ってみてください&lt;/span&gt;

&lt;span class=&quot;synType&quot;&gt;#&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt; Win64 &lt;span class=&quot;synStatement&quot;&gt;Then&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Declare&lt;/span&gt; PtrSafe &lt;span class=&quot;synStatement&quot;&gt;Sub&lt;/span&gt; Sleep &lt;span class=&quot;synStatement&quot;&gt;Lib&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;kernel32&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;(ByVal&lt;/span&gt; dwMilliseconds &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; LongPtr&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;synType&quot;&gt;#&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;Else&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Declare&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Sub&lt;/span&gt; Sleep &lt;span class=&quot;synStatement&quot;&gt;Lib&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;kernel32&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;(ByVal&lt;/span&gt; dwMilliseconds &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;Long&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;synType&quot;&gt;#&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt;

&lt;span class=&quot;synComment&quot;&gt;&#39;IEのリンクオブジェクトから文字列をInStrで探してクリックする&lt;/span&gt;
&lt;span class=&quot;synStatement&quot;&gt;Public&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Function&lt;/span&gt; IE_Link_InnerHTML_InStr_Click&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;oDocument &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;Object&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; strINSTR &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;String&lt;/span&gt;

    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; i &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;Integer&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; objA &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;Object&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;as HTMLAnchorElement&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; strWORK &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;String&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; n &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;Integer&lt;/span&gt;
   &lt;span class=&quot;synComment&quot;&gt; &#39;リンクから受け取った文字列を返す&lt;/span&gt;
    IE_Link_InnerHTML_InStr_Click &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;ERR&amp;quot;&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;初期値にERRセット&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;For&lt;/span&gt; i &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;To&lt;/span&gt; oDocument&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Links&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Length &lt;span class=&quot;synStatement&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;
       &lt;span class=&quot;synComment&quot;&gt; &#39;文字列を見つけたら　クリック&lt;/span&gt;
        &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt; &lt;span class=&quot;synIdentifier&quot;&gt;InStr&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;oDocument&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Links&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;i&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;outerHTML&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; strINSTR&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Then&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;内側のHTML&lt;/span&gt;
            
            IE_Link_InnerHTML_InStr_Click &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; oDocument&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Links&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;i&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;outerHTML &lt;span class=&quot;synComment&quot;&gt; &#39;見つけたAタグオブジェ(リンク)を代入&lt;/span&gt;
            
            &lt;span class=&quot;synStatement&quot;&gt;Exit&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;For&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;見つけたのでループを抜ける&lt;/span&gt;
        &lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Next&lt;/span&gt; i

&lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Function&lt;/span&gt;


&lt;span class=&quot;synStatement&quot;&gt;Public&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Function&lt;/span&gt; JRA_Bodyからオッズの時刻を返す&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;oDocument &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;Object&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;String&lt;/span&gt;

    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; strTEMP &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;String&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; strRETURN &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;String&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;リターン値&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; n &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;Integer&lt;/span&gt;
    
   &lt;span class=&quot;synComment&quot;&gt; &#39;errでリターン値を初期化&lt;/span&gt;
    strRETURN &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;ERR 文字列が見つかりませんでした&amp;quot;&lt;/span&gt;
    
   &lt;span class=&quot;synComment&quot;&gt; &#39;HTMLのBODYテキストを代入&lt;/span&gt;
    strTEMP &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; oDocument&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;body&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;innerText

   &lt;span class=&quot;synComment&quot;&gt; &#39;まず最終オッズを探す&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt; &lt;span class=&quot;synIdentifier&quot;&gt;InStr&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;strTEMP&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;最終オッズ&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Then&lt;/span&gt;
        strRETURN &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;最終&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt;

   &lt;span class=&quot;synComment&quot;&gt; &#39;探す 13時03分現在オッズ  2018/12/09 修正&lt;/span&gt;
   &lt;span class=&quot;synComment&quot;&gt; &#39;次週確認 7時03分現在オッズ 一けた台の時刻の時&lt;/span&gt;
    n &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synIdentifier&quot;&gt;InStr&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;strTEMP&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;現在オッズ&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt; n &lt;span class=&quot;synStatement&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Then&lt;/span&gt;
        strRETURN &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Mid(&lt;/span&gt;strTEMP&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; n &lt;span class=&quot;synStatement&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;時刻を取り出す&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt;

   &lt;span class=&quot;synComment&quot;&gt; &#39;リターン値をセット&lt;/span&gt;
    strRETURN &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synIdentifier&quot;&gt;Replace&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;strRETURN&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;vbLf&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;改行vblfを&amp;quot;&amp;quot;消す&lt;/span&gt;
    JRA_Bodyからオッズの時刻を返す &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; strRETURN

&lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Function&lt;/span&gt;

&lt;span class=&quot;synStatement&quot;&gt;Public&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Function&lt;/span&gt; JRA_Bodyから発走時刻を返す&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;oDocument &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;Object&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;String&lt;/span&gt;

    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; strTEMP &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;String&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; strRETURN &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;String&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;リターン値&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; n &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;Integer&lt;/span&gt;
    
   &lt;span class=&quot;synComment&quot;&gt; &#39;errでリターン値を初期化&lt;/span&gt;
    strRETURN &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;発走時刻が見つかりませんでした&amp;quot;&lt;/span&gt;
    
   &lt;span class=&quot;synComment&quot;&gt; &#39;HTMLのBODYテキストを代入&lt;/span&gt;
    strTEMP &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; oDocument&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;body&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;innerText

   &lt;span class=&quot;synComment&quot;&gt; &#39;5回中山4日 発走時刻：13時05分&lt;/span&gt;
    n &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synIdentifier&quot;&gt;InStr&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;strTEMP&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;発走時刻&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt; n &lt;span class=&quot;synStatement&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Then&lt;/span&gt;
        strRETURN &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Mid(&lt;/span&gt;strTEMP&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; n &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;後ろの時刻を取り出す&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt;

   &lt;span class=&quot;synComment&quot;&gt; &#39;リターン値をセット&lt;/span&gt;
    JRA_Bodyから発走時刻を返す &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; strRETURN

&lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Function&lt;/span&gt;

&lt;span class=&quot;synComment&quot;&gt;&#39;20260425 テスト&lt;/span&gt;
&lt;span class=&quot;synComment&quot;&gt;&#39;人気順のオッズをレース別に 単勝、馬連、馬単をシートへ書き出す&lt;/span&gt;
&lt;span class=&quot;synStatement&quot;&gt;Sub&lt;/span&gt; JRA人気順オッズ単勝馬連馬単&lt;span class=&quot;synConstant&quot;&gt;260425&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;取得テスト&lt;/span&gt;

    &lt;span class=&quot;synIdentifier&quot;&gt;MsgBox&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;処理を開始します&amp;quot;&lt;/span&gt;

    ActiveWindow&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;WindowState &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; xlMinimized&lt;span class=&quot;synComment&quot;&gt; &#39;最小表示&lt;/span&gt;
    &lt;span class=&quot;synIdentifier&quot;&gt;DoEvents&lt;/span&gt;
    Sleep &lt;span class=&quot;synConstant&quot;&gt;1000&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;1秒待つ&lt;/span&gt;

    ActiveWindow&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;WindowState &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; xlNormal&lt;span class=&quot;synComment&quot;&gt; &#39;ノーマル表示&lt;/span&gt;
    &lt;span class=&quot;synIdentifier&quot;&gt;DoEvents&lt;/span&gt;

&lt;span class=&quot;synComment&quot;&gt;&#39;2.1 JRA TOP ページの表示&lt;/span&gt;
   &lt;span class=&quot;synComment&quot;&gt; &#39;処理したいページをGET&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; strURL  &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;String&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; strHTML &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;String&lt;/span&gt;
    strURL &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;https://www.jra.go.jp/&amp;quot;&lt;/span&gt;
    strHTML &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; get_htmlfile&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;strURL&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;JRA TOPをGetする&lt;/span&gt;
    strHTML &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synIdentifier&quot;&gt;Replace&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;strHTML&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;script&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;取得HTMLのscriptタグを消す&lt;/span&gt;
    
&lt;span class=&quot;synComment&quot;&gt;&#39;TOPページHTML文章に対して、処理を行います。&lt;/span&gt;
       
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; i     &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;Integer&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;添え字 i番目などで使用&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; yLINE &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;Integer&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;行カウンタ、Y行目&lt;/span&gt;
    
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; oDocument &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;Object&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Set&lt;/span&gt; oDocument &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synIdentifier&quot;&gt;CreateObject&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;htmlfile&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;

    oDocument&lt;span class=&quot;synStatement&quot;&gt;.write&lt;/span&gt; strHTML &lt;span class=&quot;synComment&quot;&gt; &#39;取得したHTMLをセット&lt;/span&gt;
    &lt;span class=&quot;synIdentifier&quot;&gt;DoEvents&lt;/span&gt;
    Sleep &lt;span class=&quot;synConstant&quot;&gt;1000&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;1秒待つ&lt;/span&gt;
    
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; objA &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;Object&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;as HTMLAnchorElement リンクのタグ オブジェクト&lt;/span&gt;

    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; objTABLEs &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;Object&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;TABLE複数の格納用&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; objTABLE &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;Object&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;as HTMLTable &#39;テーブル単体&lt;/span&gt;
    
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; x &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;Integer&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;列の管理&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; y &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;Integer&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;行の管理&lt;/span&gt;
    
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; SET_Y &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;Integer&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;Excel側のセット位置&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; SET_X &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;Integer&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;Excel側のセット位置&lt;/span&gt;
    
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; objCELL &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;Object&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;as HTMLTableCell&lt;/span&gt;

    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; nRACE &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;Integer&lt;/span&gt;  &lt;span class=&quot;synComment&quot;&gt; &#39;レース 1-12&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; strRACE &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;String&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;文字列 1Rなどを作るため&lt;/span&gt;

    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; strMOJI &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;String&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;1-2など馬連の組み合わせ文字列&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; arrBOX&lt;span class=&quot;synStatement&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;分割した文字列を入れる配列&lt;/span&gt;

    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; Waku_str &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;String&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; Waku_n &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;Integer&lt;/span&gt;

&lt;span class=&quot;synComment&quot;&gt;&#39;2.2 リンクからオッズを取得(リンクを押すような処理・次を読む)&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; strLINK &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;String&lt;/span&gt;
    strLINK &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; IE_Link_InnerHTML_InStr_Click&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;oDocument&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;オッズ&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt; strLINK &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;ERR&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Then&lt;/span&gt;
        &lt;span class=&quot;synIdentifier&quot;&gt;MsgBox&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;オッズのリンクが見つかりません&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;synStatement&quot;&gt;Stop&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt;
    
   &lt;span class=&quot;synComment&quot;&gt; &#39;オッズのページ HTMLを取り出す&lt;/span&gt;
   &lt;span class=&quot;synComment&quot;&gt; &#39;&amp;lt;A onclick=&amp;quot;doAction(&#39;/JRADB/accessO.html&#39;,&#39;pw15oli00/6D&#39;);return&lt;/span&gt;
   &lt;span class=&quot;synComment&quot;&gt; &#39;文字列切り出し(strMOJI, &amp;quot;doAction(&#39;&amp;quot;,&amp;quot;&#39;,&#39;&amp;quot;)&lt;/span&gt;
   &lt;span class=&quot;synComment&quot;&gt; &#39;文字列切り出し(strMOJI, &amp;quot;&#39;,&#39;&amp;quot;,&amp;quot;&#39;)&amp;quot;)&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; strPARA &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;String&lt;/span&gt;
    strURL &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;https://www.jra.go.jp&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; 文字列切り出し&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;strLINK&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;doAction(&#39;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&#39;,&#39;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;URL&lt;/span&gt;
    strPARA &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;cname=&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; 文字列切り出し&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;strLINK&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&#39;,&#39;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&#39;)&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;  &lt;span class=&quot;synComment&quot;&gt; &#39;パラメーター&lt;/span&gt;
    strHTML &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; get_htmlfile_post&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;strURL&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; strPARA&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;POSTパラメーターを付けて開く&lt;/span&gt;
    
    &lt;span class=&quot;synStatement&quot;&gt;Set&lt;/span&gt; oDocument &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Nothing&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;クリアしてから、HTML文字列をセットして、ドキュメントオブジェクトを作りたい&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Set&lt;/span&gt; oDocument &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synIdentifier&quot;&gt;CreateObject&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;htmlfile&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;
    oDocument&lt;span class=&quot;synStatement&quot;&gt;.write&lt;/span&gt; strHTML &lt;span class=&quot;synComment&quot;&gt; &#39;取得したHTMLをセット&lt;/span&gt;
    &lt;span class=&quot;synIdentifier&quot;&gt;DoEvents&lt;/span&gt;
    Sleep &lt;span class=&quot;synConstant&quot;&gt;1000&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;1秒待つ&lt;/span&gt;
    &lt;span class=&quot;synIdentifier&quot;&gt;DoEvents&lt;/span&gt;

&lt;span class=&quot;synComment&quot;&gt;&#39;2.3 B2開催のリンクを探して、次(レース・オッズ一覧)を読む&lt;/span&gt;
   &lt;span class=&quot;synComment&quot;&gt; &#39;開催日のリンクをあさる&lt;/span&gt;
    strLINK &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; IE_Link_InnerHTML_InStr_Click&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;oDocument&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; Sheets&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;MENU&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;Range&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;B2&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;))&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt; strLINK &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;ERR&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Then&lt;/span&gt;
        &lt;span class=&quot;synIdentifier&quot;&gt;MsgBox&lt;/span&gt; Sheets&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;MENU&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;Range&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;B2&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;が見つかりません&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;synStatement&quot;&gt;Stop&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt;
    
    strURL &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;https://www.jra.go.jp&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; 文字列切り出し&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;strLINK&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;doAction(&#39;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&#39;,&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;URL&lt;/span&gt;
    strPARA &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;cname=&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; 文字列切り出し&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;strLINK&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&#39;, &#39;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&#39;)&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;  &lt;span class=&quot;synComment&quot;&gt; &#39;パラメーター&lt;/span&gt;
    strHTML &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; get_htmlfile_post&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;strURL&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; strPARA&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;パラメーターを付けて開く&lt;/span&gt;

    &lt;span class=&quot;synStatement&quot;&gt;Set&lt;/span&gt; oDocument &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Nothing&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;クリアしてから、HTML文字列をセットして、ドキュメントオブジェクトを作りたい&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Set&lt;/span&gt; oDocument &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synIdentifier&quot;&gt;CreateObject&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;htmlfile&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;
    oDocument&lt;span class=&quot;synStatement&quot;&gt;.write&lt;/span&gt; strHTML &lt;span class=&quot;synComment&quot;&gt; &#39;取得したHTMLをセット&lt;/span&gt;
    &lt;span class=&quot;synIdentifier&quot;&gt;DoEvents&lt;/span&gt;
    Sleep &lt;span class=&quot;synConstant&quot;&gt;1000&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;1秒待つ&lt;/span&gt;
    &lt;span class=&quot;synIdentifier&quot;&gt;DoEvents&lt;/span&gt;

&lt;span class=&quot;synComment&quot;&gt;&#39;2.4 1R-12Rのループ 人気順に切り替えてから、レース単位で回す&lt;/span&gt;
    
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; n一番人気 &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;Integer&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;今回は人気順なので使わないかな&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; strWORK &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;String&lt;/span&gt;   &lt;span class=&quot;synComment&quot;&gt; &#39;C1にセットする文字列を作る&lt;/span&gt;
    
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; n馬番&lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;Integer&lt;/span&gt;   &lt;span class=&quot;synComment&quot;&gt; &#39;馬は最大18頭&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; n馬番&lt;span class=&quot;synConstant&quot;&gt;2&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;Integer&lt;/span&gt;   &lt;span class=&quot;synComment&quot;&gt; &#39;馬は最大18頭&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; str探す文字列 &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;String&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;1-2,2-3 など表題と比べる&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; str初回FLG &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;初回は単勝をチェック、次からはレースのみで良い&lt;/span&gt;

    str初回FLG &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;初回&amp;quot;&lt;/span&gt;     &lt;span class=&quot;synComment&quot;&gt; &#39;初回で初期化 Flgの初期化、初回の条件にヒットさせるため&lt;/span&gt;

   &lt;span class=&quot;synComment&quot;&gt; &#39;2.4 1Rから12Rまで、ループする。※これだと前日発売の時1Rでトラブルなぁ&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;For&lt;/span&gt; nRACE &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;To&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;12&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;一から十二まで&lt;/span&gt;
       &lt;span class=&quot;synComment&quot;&gt; &#39;B5からのフラグが立っていたら And 最終じゃなければ&lt;/span&gt;
       &lt;span class=&quot;synComment&quot;&gt; &#39;レースを取り込む&lt;/span&gt;
        &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt; Sheets&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;MENU&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;Range&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;B4&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;Offset&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;nRACE&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt; _&lt;/span&gt;
          &lt;span class=&quot;synStatement&quot;&gt;And&lt;/span&gt; Sheets&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;MENU&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;Range&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;B4&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;Offset&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;nRACE&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;lt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;最終&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Then&lt;/span&gt;
        
           &lt;span class=&quot;synComment&quot;&gt; &#39;作業用シート、出力先をクリアする&lt;/span&gt;
           &lt;span class=&quot;synComment&quot;&gt; &#39;まず、書き込み先シート、データをクリアする&lt;/span&gt;
           &lt;span class=&quot;synComment&quot;&gt; &#39;Sheets(nRACE &amp;amp; &amp;quot;R&amp;quot;).Select  &#39;シートの切り替え&lt;/span&gt;
            Sheets&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;作業用&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;).Select&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;シートの切り替え&lt;/span&gt;
            Cells&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;synPreProc&quot;&gt;Delete&lt;/span&gt; Shift:&lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt;xlUp&lt;span class=&quot;synComment&quot;&gt; &#39;シート全体を削除する&lt;/span&gt;
            Range&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;A1&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;).Select&lt;/span&gt;      &lt;span class=&quot;synComment&quot;&gt; &#39;先頭A1を選択する、&lt;/span&gt;
            SET_Y &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;セット位置を初期化&lt;/span&gt;
        
            strRACE &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; nRACE &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;レース&amp;quot;&lt;/span&gt;  &lt;span class=&quot;synComment&quot;&gt; &#39;1Rなど 文字にする&lt;/span&gt;
        
           &lt;span class=&quot;synComment&quot;&gt; &#39;リンクから該当するレースを探しクリックする &amp;quot;1R&amp;quot;..&amp;quot;12R&amp;quot;&lt;/span&gt;
           &lt;span class=&quot;synComment&quot;&gt; &#39;2.4.1 初回は単勝のレース番号を読み、※スグに人気順に切り替える←ココポイント&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt; str初回FLG &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;初回&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Then&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;フラグが初回？&lt;/span&gt;
               &lt;span class=&quot;synComment&quot;&gt; &#39;リンクから、レースのTR行を探し、列 ここでは単勝を探して返す&lt;/span&gt;
                strLINK &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; IE_Link_InnerHTML_InStr_TR_TD&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;oDocument&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; strRACE&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;単勝&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;Else&lt;/span&gt;
               &lt;span class=&quot;synComment&quot;&gt; &#39;2.4.8 ２回目以降は、馬単のオッズの位置でレースを選択(なんか紛らわしいけど・・)&lt;/span&gt;
               &lt;span class=&quot;synComment&quot;&gt; &#39;リンクから該当するレースを探しクリックする &amp;quot;1R&amp;quot;..&amp;quot;12R&amp;quot;&lt;/span&gt;
               &lt;span class=&quot;synComment&quot;&gt; &#39;Call IE_Link_InnerHTML_InStr_Click(oDocument, &amp;quot;&amp;quot;&amp;quot;&amp;quot; &amp;amp; strRACE &amp;amp; &amp;quot;&amp;quot;&amp;quot;&amp;quot;)&lt;/span&gt;
                strLINK &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; IE_Link_InnerHTML_InStr_Click&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;oDocument&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; strRACE&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt;
            
            &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt; strLINK &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;ERR&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Then&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;エラーチェック&lt;/span&gt;
                &lt;span class=&quot;synIdentifier&quot;&gt;MsgBox&lt;/span&gt; strRACE &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;が見つかりません&amp;quot;&lt;/span&gt;
                &lt;span class=&quot;synStatement&quot;&gt;Stop&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt;
            
           &lt;span class=&quot;synComment&quot;&gt; &#39;ここで、初回単勝の表か(or)次のレース(馬単)が読まれる&lt;/span&gt;
            strURL &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;https://www.jra.go.jp&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; 文字列切り出し&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;strLINK&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;doAction(&#39;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&#39;,&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;URL&lt;/span&gt;
            strPARA &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;cname=&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; 文字列切り出し&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;strLINK&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&#39;, &#39;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&#39;)&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;  &lt;span class=&quot;synComment&quot;&gt; &#39;パラメーター&lt;/span&gt;
            strHTML &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; get_htmlfile_post&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;strURL&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; strPARA&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;パラメーターを付けて開く&lt;/span&gt;
            
            &lt;span class=&quot;synStatement&quot;&gt;Set&lt;/span&gt; oDocument &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Nothing&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;Set&lt;/span&gt; oDocument &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synIdentifier&quot;&gt;CreateObject&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;htmlfile&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;
            oDocument&lt;span class=&quot;synStatement&quot;&gt;.write&lt;/span&gt; strHTML &lt;span class=&quot;synComment&quot;&gt; &#39;取得したHTMLをセット&lt;/span&gt;
            &lt;span class=&quot;synIdentifier&quot;&gt;DoEvents&lt;/span&gt;
            Sleep &lt;span class=&quot;synConstant&quot;&gt;1000&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;1秒待つ&lt;/span&gt;
            &lt;span class=&quot;synIdentifier&quot;&gt;DoEvents&lt;/span&gt;

           &lt;span class=&quot;synComment&quot;&gt; &#39;レース番号をセルに書く&lt;/span&gt;
            SET_Y &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; SET_Y &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;
            Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;SET_Y&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; Sheets&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;MENU&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;Range&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;B2&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; strRACE
            Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;SET_Y&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; JRA_Bodyからオッズの時刻を返す&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;oDocument&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;
            
            Sheets&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;MENU&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;Range&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;C4&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;Offset&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;nRACE&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; JRA_Bodyからオッズの時刻を返す&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;oDocument&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;
            Debug&lt;span class=&quot;synStatement&quot;&gt;.Print&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;オッズ:&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; JRA_Bodyからオッズの時刻を返す&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;oDocument&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;
            
           &lt;span class=&quot;synComment&quot;&gt; &#39;発送時刻のセット&lt;/span&gt;
           &lt;span class=&quot;synComment&quot;&gt; &#39;JRA_Bodyから発走時刻を返す&lt;/span&gt;
            Sheets&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;MENU&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;Range&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;A4&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;Offset&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;nRACE&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; strRACE &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;発走&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; JRA_Bodyから発走時刻を返す&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;oDocument&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;
            Debug&lt;span class=&quot;synStatement&quot;&gt;.Print&lt;/span&gt; strRACE &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;発走:&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; JRA_Bodyから発走時刻を返す&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;oDocument&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;
            
            SET_Y &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; SET_Y &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;

&lt;span class=&quot;synComment&quot;&gt;&#39;初回は、馬連順を人気順に切り替え、2回目以降は馬単から単勝へ戻す(なんか複雑だけど)&lt;/span&gt;
           &lt;span class=&quot;synComment&quot;&gt; &#39;2.4.2 初回は単勝のレース番号を読み、※スグに人気順に切り替える←ココポイント&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt; str初回FLG &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;初回&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Then&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;フラグが初回？&lt;/span&gt;
               &lt;span class=&quot;synComment&quot;&gt; &#39;リンクから、レースのTR行を探し、列 ここでは単勝を探して返す&lt;/span&gt;
                strLINK &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; IE_Link_InnerHTML_InStr_TR_TD&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;oDocument&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; strRACE&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;人気順&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;
                str初回FLG &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;フラグを折る・初回を抜ける&amp;quot;&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;フラグを折る。次の指示&lt;/span&gt;
               &lt;span class=&quot;synComment&quot;&gt; &#39;人気順を探して押したいので(ドキュメントを人気順にしたい)&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;Else&lt;/span&gt;
               &lt;span class=&quot;synComment&quot;&gt; &#39;2.4.9 ２回目以降は、レース選択後、単勝に戻す(なんか紛らわしいけど・・)&lt;/span&gt;
               &lt;span class=&quot;synComment&quot;&gt; &#39;リンクから単勝を探しクリックする※一度馬単になっているので、もったいないけど&lt;/span&gt;
               &lt;span class=&quot;synComment&quot;&gt; &#39;Call IE_Link_InnerHTML_InStr_Click(oDocument, &amp;quot;&amp;quot;&amp;quot;&amp;quot; &amp;amp; strRACE &amp;amp; &amp;quot;&amp;quot;&amp;quot;&amp;quot;)&lt;/span&gt;
                strLINK &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; IE_Link_InnerHTML_InStr_Click&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;oDocument&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;単勝&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt;
            
            &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt; strLINK &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;ERR&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Then&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;エラーチェック&lt;/span&gt;
                &lt;span class=&quot;synIdentifier&quot;&gt;MsgBox&lt;/span&gt; strRACE &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;が見つかりません&amp;quot;&lt;/span&gt;
                &lt;span class=&quot;synStatement&quot;&gt;Stop&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt;
            
           &lt;span class=&quot;synComment&quot;&gt; &#39;2.4.3 ここで、やっと単勝の人気順を読む&lt;/span&gt;
            strURL &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;https://www.jra.go.jp&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; 文字列切り出し&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;strLINK&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;doAction(&#39;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&#39;,&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;URL&lt;/span&gt;
            strPARA &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;cname=&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; 文字列切り出し&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;strLINK&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&#39;, &#39;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&#39;)&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;  &lt;span class=&quot;synComment&quot;&gt; &#39;パラメーター&lt;/span&gt;
            strHTML &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; get_htmlfile_post&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;strURL&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; strPARA&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;パラメーターを付けて開く&lt;/span&gt;
            
            &lt;span class=&quot;synStatement&quot;&gt;Set&lt;/span&gt; oDocument &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Nothing&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;Set&lt;/span&gt; oDocument &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synIdentifier&quot;&gt;CreateObject&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;htmlfile&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;
            oDocument&lt;span class=&quot;synStatement&quot;&gt;.write&lt;/span&gt; strHTML &lt;span class=&quot;synComment&quot;&gt; &#39;取得したHTMLをセット&lt;/span&gt;
            &lt;span class=&quot;synIdentifier&quot;&gt;DoEvents&lt;/span&gt;
            Sleep &lt;span class=&quot;synConstant&quot;&gt;1000&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;1秒待つ&lt;/span&gt;
            &lt;span class=&quot;synIdentifier&quot;&gt;DoEvents&lt;/span&gt;

&lt;span class=&quot;synComment&quot;&gt;&#39;2.4.4 単勝の表、テーブルを取得する&lt;/span&gt;
           &lt;span class=&quot;synComment&quot;&gt; &#39;見出しをセルに書く&lt;/span&gt;
           &lt;span class=&quot;synComment&quot;&gt; &#39;単勝・複勝オッズ（人気順）&lt;/span&gt;
            SET_X &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;  &lt;span class=&quot;synComment&quot;&gt; &#39;A列、1から書き込む&lt;/span&gt;
            Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;SET_Y&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; SET_X&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;単勝人気順&amp;quot;&lt;/span&gt;   &lt;span class=&quot;synComment&quot;&gt; &#39;単純に(オイオイ、工夫しようぜ)&lt;/span&gt;
            SET_Y &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; SET_Y &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;
            
           &lt;span class=&quot;synComment&quot;&gt; &#39;テーブルを探す&lt;/span&gt;
           &lt;span class=&quot;synComment&quot;&gt; &#39;TABLEタグを抜きデータをセット&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;Set&lt;/span&gt; objTABLEs &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; oDocument&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;getElementsByTagName&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;TABLE&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;
           &lt;span class=&quot;synComment&quot;&gt; &#39;↑で代入したオブジェクトからテーブルデータを取り出す｡&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;Set&lt;/span&gt; objTABLE &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; objTABLEs&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;1番目(0)を代入&lt;/span&gt;
           &lt;span class=&quot;synComment&quot;&gt; &#39;↑で見つかったかチェックする&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt; objTABLE &lt;span class=&quot;synStatement&quot;&gt;Is&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Nothing&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Then&lt;/span&gt;
               &lt;span class=&quot;synComment&quot;&gt; &#39;見つからなかったら、終わっていたら、ループを抜ける&lt;/span&gt;
                &lt;span class=&quot;synIdentifier&quot;&gt;MsgBox&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;単勝のテーブル取得エラー・・・&amp;quot;&lt;/span&gt;
                &lt;span class=&quot;synStatement&quot;&gt;Exit&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;For&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;抜ける&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt;
                
           &lt;span class=&quot;synComment&quot;&gt; &#39;表をDATAシートに書き出す&lt;/span&gt;
           &lt;span class=&quot;synComment&quot;&gt; &#39;テーブルからデータを抜き出す、書き出す&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;For&lt;/span&gt; y &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;To&lt;/span&gt; objTABLE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Rows&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Length &lt;span class=&quot;synStatement&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;行のループ&lt;/span&gt;
                &lt;span class=&quot;synStatement&quot;&gt;For&lt;/span&gt; x &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;To&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;列のループ x=0から、セルのセット位置に注意&lt;/span&gt;
                   &lt;span class=&quot;synComment&quot;&gt; &#39;データをセルに書く ※画像の枠番号が抜けているバグありですが&lt;/span&gt;
                    Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;SET_Y&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; x &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; objTABLE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Rows&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;y&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;x&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;innerText&lt;span class=&quot;synComment&quot;&gt; &#39;単純にセット&lt;/span&gt;
                &lt;span class=&quot;synStatement&quot;&gt;Next&lt;/span&gt; x
                SET_Y &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; SET_Y &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;セット位置を次の行へ&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;Next&lt;/span&gt; y
            
&lt;span class=&quot;synComment&quot;&gt;&#39;2.4.5 馬連オッズの処理&lt;/span&gt;
&lt;span class=&quot;synComment&quot;&gt;&#39;馬連オッズへドキュメントを移動する(読み込みたいので)&lt;/span&gt;
           &lt;span class=&quot;synComment&quot;&gt; &#39;単勝人気順のドキュメントから、&amp;quot;馬連&amp;quot;のリンクを探す&lt;/span&gt;
            strLINK &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; IE_Link_InnerHTML_InStr_Click&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;oDocument&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;馬連&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;

            &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt; strLINK &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;ERR&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Then&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;エラーチェック&lt;/span&gt;
                &lt;span class=&quot;synIdentifier&quot;&gt;MsgBox&lt;/span&gt; strRACE &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;馬連のリンクが見つかりません&amp;quot;&lt;/span&gt;
                &lt;span class=&quot;synStatement&quot;&gt;Stop&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt;
            
           &lt;span class=&quot;synComment&quot;&gt; &#39;ここで、次の馬連人気順を読む&lt;/span&gt;
            strURL &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;https://www.jra.go.jp&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; 文字列切り出し&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;strLINK&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;doAction(&#39;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&#39;,&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;URL&lt;/span&gt;
            strPARA &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;cname=&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; 文字列切り出し&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;strLINK&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&#39;, &#39;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&#39;)&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;  &lt;span class=&quot;synComment&quot;&gt; &#39;パラメーター&lt;/span&gt;
            strHTML &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; get_htmlfile_post&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;strURL&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; strPARA&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;パラメーターを付けて開く&lt;/span&gt;
            
            &lt;span class=&quot;synStatement&quot;&gt;Set&lt;/span&gt; oDocument &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Nothing&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;Set&lt;/span&gt; oDocument &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synIdentifier&quot;&gt;CreateObject&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;htmlfile&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;
            oDocument&lt;span class=&quot;synStatement&quot;&gt;.write&lt;/span&gt; strHTML &lt;span class=&quot;synComment&quot;&gt; &#39;取得したHTMLをセット&lt;/span&gt;
            &lt;span class=&quot;synIdentifier&quot;&gt;DoEvents&lt;/span&gt;
            Sleep &lt;span class=&quot;synConstant&quot;&gt;1000&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;1秒待つ&lt;/span&gt;
            &lt;span class=&quot;synIdentifier&quot;&gt;DoEvents&lt;/span&gt;

   &lt;span class=&quot;synComment&quot;&gt; &#39;馬連の表、テーブルを探る&lt;/span&gt;
           &lt;span class=&quot;synComment&quot;&gt; &#39;見出しをセルに書く&lt;/span&gt;
           &lt;span class=&quot;synComment&quot;&gt; &#39;馬連オッズ（人気順）&lt;/span&gt;
            SET_X &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;M列から書き込む M列=13&lt;/span&gt;
            SET_Y &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;2&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;セット位置を上に戻す&lt;/span&gt;
            Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;SET_Y&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; SET_X&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;馬連人気順&amp;quot;&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;単純に文字列をセット&lt;/span&gt;
            SET_Y &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; SET_Y &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;
            
           &lt;span class=&quot;synComment&quot;&gt; &#39;テーブルを探す&lt;/span&gt;
           &lt;span class=&quot;synComment&quot;&gt; &#39;TABLEタグを抜きデータをセット&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;Set&lt;/span&gt; objTABLEs &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; oDocument&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;getElementsByTagName&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;TABLE&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;
           &lt;span class=&quot;synComment&quot;&gt; &#39;↑で代入したオブジェクトからテーブルデータを取り出す｡&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;Set&lt;/span&gt; objTABLE &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; objTABLEs&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;1番目(0)を代入、今回必要なのは上位5件なので、固定処理&lt;/span&gt;
           &lt;span class=&quot;synComment&quot;&gt; &#39;↑で見つかったかチェックする&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt; objTABLE &lt;span class=&quot;synStatement&quot;&gt;Is&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Nothing&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Then&lt;/span&gt;
               &lt;span class=&quot;synComment&quot;&gt; &#39;見つからなかったら、終わっていたら、ループを抜ける&lt;/span&gt;
                &lt;span class=&quot;synIdentifier&quot;&gt;MsgBox&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;馬連のテーブル取得エラー・・・&amp;quot;&lt;/span&gt;
                &lt;span class=&quot;synStatement&quot;&gt;Exit&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;For&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;抜ける&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt;
                
           &lt;span class=&quot;synComment&quot;&gt; &#39;表をDATAシートに書き出す&lt;/span&gt;
           &lt;span class=&quot;synComment&quot;&gt; &#39;見出しを書く&lt;/span&gt;
            Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;SET_Y&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; SET_X &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;人気&amp;quot;&lt;/span&gt;
            Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;SET_Y&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; SET_X &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;組番1&amp;quot;&lt;/span&gt;
            Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;SET_Y&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; SET_X &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&#39;-組番2&amp;quot;&lt;/span&gt;
            Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;SET_Y&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; SET_X &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;オッズ&amp;quot;&lt;/span&gt;
            SET_Y &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; SET_Y &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;
           &lt;span class=&quot;synComment&quot;&gt; &#39;テーブルからデータを抜き出す、書き出す&lt;/span&gt;
           &lt;span class=&quot;synComment&quot;&gt; &#39;y=1で見出しを飛ばす&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;For&lt;/span&gt; y &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;To&lt;/span&gt; objTABLE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Rows&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Length &lt;span class=&quot;synStatement&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;行のループ&lt;/span&gt;
               &lt;span class=&quot;synComment&quot;&gt; &#39;人気 組番 オッズの3列なので、0to2だけど、1-2などを個別に分割する&lt;/span&gt;
               &lt;span class=&quot;synComment&quot;&gt; &#39;データをセルに書く&lt;/span&gt;
                Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;SET_Y&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; SET_X &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; objTABLE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Rows&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;y&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;innerText&lt;span class=&quot;synComment&quot;&gt; &#39;単純にセット&lt;/span&gt;
                
               &lt;span class=&quot;synComment&quot;&gt; &#39;※組み合わせ番号の文字列&amp;quot;1-2&amp;quot;や&amp;quot;5-11&amp;quot;などを分割セットする&lt;/span&gt;
                strMOJI &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; objTABLE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Rows&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;y&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;innerText&lt;span class=&quot;synComment&quot;&gt; &#39;単純にセット&lt;/span&gt;
                arrBOX &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synPreProc&quot;&gt;Split&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;strMOJI&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;-&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;Split関数で「-」を区切り文字として分割&lt;/span&gt;
                Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;SET_Y&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; SET_X &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synIdentifier&quot;&gt;CInt&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;arrBOX&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;))&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;馬連の組み合わせ番号&lt;/span&gt;
                Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;SET_Y&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; SET_X &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synIdentifier&quot;&gt;CInt&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;arrBOX&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;))&lt;/span&gt;
           
               &lt;span class=&quot;synComment&quot;&gt; &#39;オッズ&lt;/span&gt;
                Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;SET_Y&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; SET_X &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; objTABLE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Rows&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;y&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;innerText&lt;span class=&quot;synComment&quot;&gt; &#39;単純にセット&lt;/span&gt;
                
                SET_Y &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; SET_Y &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;セット位置を次の行へ&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;Next&lt;/span&gt; y

&lt;span class=&quot;synComment&quot;&gt;&#39;2.4.6 馬単オッズの処理&lt;/span&gt;
&lt;span class=&quot;synComment&quot;&gt;&#39;馬単オッズへドキュメントを移動する(読み込みたいので)&lt;/span&gt;
           &lt;span class=&quot;synComment&quot;&gt; &#39;上の馬連人気順のドキュメントから、&amp;quot;馬単&amp;quot;のリンクを探す&lt;/span&gt;
            strLINK &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; IE_Link_InnerHTML_InStr_Click&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;oDocument&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;馬単&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;

            &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt; strLINK &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;ERR&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Then&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;エラーチェック&lt;/span&gt;
                &lt;span class=&quot;synIdentifier&quot;&gt;MsgBox&lt;/span&gt; strRACE &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;馬単のリンクが見つかりません&amp;quot;&lt;/span&gt;
                &lt;span class=&quot;synStatement&quot;&gt;Stop&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt;
            
           &lt;span class=&quot;synComment&quot;&gt; &#39;ここで、次の馬単人気順を読む、ドキュメントの用意&lt;/span&gt;
            strURL &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;https://www.jra.go.jp&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; 文字列切り出し&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;strLINK&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;doAction(&#39;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&#39;,&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;URL&lt;/span&gt;
            strPARA &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;cname=&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; 文字列切り出し&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;strLINK&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&#39;, &#39;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&#39;)&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;  &lt;span class=&quot;synComment&quot;&gt; &#39;パラメーター&lt;/span&gt;
            strHTML &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; get_htmlfile_post&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;strURL&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; strPARA&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;パラメーターを付けて開く&lt;/span&gt;
            
            &lt;span class=&quot;synStatement&quot;&gt;Set&lt;/span&gt; oDocument &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Nothing&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;Set&lt;/span&gt; oDocument &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synIdentifier&quot;&gt;CreateObject&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;htmlfile&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;
            oDocument&lt;span class=&quot;synStatement&quot;&gt;.write&lt;/span&gt; strHTML &lt;span class=&quot;synComment&quot;&gt; &#39;取得したHTMLをセット&lt;/span&gt;
            &lt;span class=&quot;synIdentifier&quot;&gt;DoEvents&lt;/span&gt;
            Sleep &lt;span class=&quot;synConstant&quot;&gt;1000&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;1秒待つ&lt;/span&gt;
            &lt;span class=&quot;synIdentifier&quot;&gt;DoEvents&lt;/span&gt;

   &lt;span class=&quot;synComment&quot;&gt; &#39;馬単の表、テーブルを探る&lt;/span&gt;
           &lt;span class=&quot;synComment&quot;&gt; &#39;見出しをセルに書く&lt;/span&gt;
           &lt;span class=&quot;synComment&quot;&gt; &#39;馬単オッズ（人気順）&lt;/span&gt;
            SET_X &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;R列から書き込む R列=13&lt;/span&gt;
            SET_Y &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;2&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;セット位置を上に戻す&lt;/span&gt;
            Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;SET_Y&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; SET_X&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;馬単人気順&amp;quot;&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;単純に文字列をセット&lt;/span&gt;
            SET_Y &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; SET_Y &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;
            
           &lt;span class=&quot;synComment&quot;&gt; &#39;テーブルを探す&lt;/span&gt;
           &lt;span class=&quot;synComment&quot;&gt; &#39;TABLEタグを抜きデータをセット&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;Set&lt;/span&gt; objTABLEs &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; oDocument&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;getElementsByTagName&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;TABLE&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;
           &lt;span class=&quot;synComment&quot;&gt; &#39;↑で代入したオブジェクトからテーブルデータを取り出す｡&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;Set&lt;/span&gt; objTABLE &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; objTABLEs&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;1番目(0)を代入、今回必要なのは上位5件なので、固定処理&lt;/span&gt;
           &lt;span class=&quot;synComment&quot;&gt; &#39;↑で見つかったかチェックする&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt; objTABLE &lt;span class=&quot;synStatement&quot;&gt;Is&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Nothing&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Then&lt;/span&gt;
               &lt;span class=&quot;synComment&quot;&gt; &#39;見つからなかったら、終わっていたら、ループを抜ける&lt;/span&gt;
                &lt;span class=&quot;synIdentifier&quot;&gt;MsgBox&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;馬単のテーブル取得エラー・・・&amp;quot;&lt;/span&gt;
                &lt;span class=&quot;synStatement&quot;&gt;Exit&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;For&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;抜ける&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt;
                
           &lt;span class=&quot;synComment&quot;&gt; &#39;表をDATAシートに書き出す&lt;/span&gt;
           &lt;span class=&quot;synComment&quot;&gt; &#39;見出しを書く&lt;/span&gt;
            Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;SET_Y&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; SET_X &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;人気&amp;quot;&lt;/span&gt;
            Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;SET_Y&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; SET_X &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;組番1&amp;quot;&lt;/span&gt;
            Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;SET_Y&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; SET_X &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&#39;-組番2&amp;quot;&lt;/span&gt;
            Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;SET_Y&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; SET_X &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;オッズ&amp;quot;&lt;/span&gt;
            SET_Y &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; SET_Y &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;
           &lt;span class=&quot;synComment&quot;&gt; &#39;テーブルからデータを抜き出す、書き出す&lt;/span&gt;
           &lt;span class=&quot;synComment&quot;&gt; &#39;y=1で見出しを飛ばす&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;For&lt;/span&gt; y &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;To&lt;/span&gt; objTABLE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Rows&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Length &lt;span class=&quot;synStatement&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;行のループ&lt;/span&gt;
               &lt;span class=&quot;synComment&quot;&gt; &#39;人気 組番 オッズの3列なので、0to2だけど、1-2などを個別に分割する&lt;/span&gt;
               &lt;span class=&quot;synComment&quot;&gt; &#39;データをセルに書く&lt;/span&gt;
                Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;SET_Y&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; SET_X &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; objTABLE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Rows&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;y&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;innerText&lt;span class=&quot;synComment&quot;&gt; &#39;単純にセット&lt;/span&gt;
                
               &lt;span class=&quot;synComment&quot;&gt; &#39;※組み合わせ番号の文字列&amp;quot;2-1&amp;quot;や&amp;quot;18-9&amp;quot;などを分割セットする&lt;/span&gt;
                strMOJI &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; objTABLE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Rows&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;y&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;innerText&lt;span class=&quot;synComment&quot;&gt; &#39;単純にセット&lt;/span&gt;
                arrBOX &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synPreProc&quot;&gt;Split&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;strMOJI&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;-&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;Split関数で「-」を区切り文字として分割&lt;/span&gt;
                Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;SET_Y&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; SET_X &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synIdentifier&quot;&gt;CInt&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;arrBOX&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;))&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;馬単の組み合わせ番号&lt;/span&gt;
                Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;SET_Y&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; SET_X &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synIdentifier&quot;&gt;CInt&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;arrBOX&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;))&lt;/span&gt;
           
               &lt;span class=&quot;synComment&quot;&gt; &#39;オッズ&lt;/span&gt;
                Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;SET_Y&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; SET_X &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; objTABLE&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Rows&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;y&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;Cells&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;innerText&lt;span class=&quot;synComment&quot;&gt; &#39;単純にセット&lt;/span&gt;
                
                SET_Y &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; SET_Y &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;セット位置を次の行へ&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;Next&lt;/span&gt; y
            
&lt;span class=&quot;synComment&quot;&gt;&#39;2.4.7 作業用シートからレース別に転記する&lt;/span&gt;
            Sheets&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;nRACE &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;R&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;).Select&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;シートの切り替え&lt;/span&gt;

           &lt;span class=&quot;synComment&quot;&gt; &#39;今回は、時間別ではないので、シートをそのままコピーする&lt;/span&gt;
            Cells&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;synPreProc&quot;&gt;Delete&lt;/span&gt; Shift:&lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt;xlUp&lt;span class=&quot;synComment&quot;&gt; &#39;シート全体を削除する&lt;/span&gt;
            Range&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;A1&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;).Select&lt;/span&gt;      &lt;span class=&quot;synComment&quot;&gt; &#39;先頭A1を選択する、&lt;/span&gt;
           &lt;span class=&quot;synComment&quot;&gt; &#39;初回は、開催場所、見出しもコピーする&lt;/span&gt;
            Sheets&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;作業用&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;Range&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;A1:Z50&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;synPreProc&quot;&gt;Copy&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;大きくA1からZ50までコピー&lt;/span&gt;
            Range&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;A1&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;).Select&lt;/span&gt;
            ActiveSheet&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;synPreProc&quot;&gt;Paste&lt;/span&gt;
            Range&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;D1&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;).Select&lt;/span&gt;
            
           &lt;span class=&quot;synComment&quot;&gt; &#39;読み上げる※動画用&lt;/span&gt;
            &lt;span class=&quot;synIdentifier&quot;&gt;DoEvents&lt;/span&gt;
            Range&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;A1&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;Speak &lt;span class=&quot;synComment&quot;&gt; &#39;A1 開催とレース&lt;/span&gt;
            Application&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Speech&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Speak &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;、を取得しました。&amp;quot;&lt;/span&gt;
            &lt;span class=&quot;synIdentifier&quot;&gt;DoEvents&lt;/span&gt;
            
        &lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;フラグが立っていたら↑&lt;/span&gt;
        
    &lt;span class=&quot;synStatement&quot;&gt;Next&lt;/span&gt;

   &lt;span class=&quot;synComment&quot;&gt; &#39;MENUに戻り、保存&lt;/span&gt;
    Sheets&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;MENU&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;).Select&lt;/span&gt;
    Range&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;A3&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;).Select&lt;/span&gt;
    ActiveWorkbook&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;synPreProc&quot;&gt;Save&lt;/span&gt;
   
&lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Sub&lt;/span&gt;

&lt;span class=&quot;synComment&quot;&gt;&#39;URLを受け取り、HTML文字列を返す(シフトJISページ用に変換後)&lt;/span&gt;
&lt;span class=&quot;synStatement&quot;&gt;Public&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Function&lt;/span&gt; get_htmlfile&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;strURL &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;String&lt;/span&gt;

    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; objDOC &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;Object&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; objHTML &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;Object&lt;/span&gt;
    
    &lt;span class=&quot;synStatement&quot;&gt;Set&lt;/span&gt; objHTML &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synIdentifier&quot;&gt;CreateObject&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;MSXML2.XMLHTTP&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;
    
    objHTML&lt;span class=&quot;synStatement&quot;&gt;.Open&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;GET&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; strURL&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;False&lt;/span&gt;
   &lt;span class=&quot;synComment&quot;&gt; &#39;objHTML.overrideMimeType &amp;quot;text/plain; charset=Shift_JIS&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;synIdentifier&quot;&gt;DoEvents&lt;/span&gt;
    objHTML&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;synPreProc&quot;&gt;send&lt;/span&gt;
    Sleep &lt;span class=&quot;synConstant&quot;&gt;250&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;0.25秒待つ&lt;/span&gt;

    &lt;span class=&quot;synIdentifier&quot;&gt;DoEvents&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Do&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;While&lt;/span&gt; objHTML&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;readyState &lt;span class=&quot;synStatement&quot;&gt;&amp;lt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;4&lt;/span&gt;
        &lt;span class=&quot;synIdentifier&quot;&gt;DoEvents&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Loop&lt;/span&gt;
    
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; strHTML &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;String&lt;/span&gt;
   &lt;span class=&quot;synComment&quot;&gt; &#39;strHTML = objHTML.responseText&lt;/span&gt;
    strHTML &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synIdentifier&quot;&gt;StrConv&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;objHTML&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;responseBody&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;vbUnicode&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;

   &lt;span class=&quot;synComment&quot;&gt; &#39;テキスト確認 デバッグ用&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; strFNAME &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;String&lt;/span&gt;
    strFNAME &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; ThisWorkbook&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Path &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;\testhtml.txt&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Open&lt;/span&gt; strFNAME &lt;span class=&quot;synStatement&quot;&gt;For&lt;/span&gt; Output &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;#&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Print&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;#&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synIdentifier&quot;&gt;Now&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot; に実行&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Print&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;#&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;strURL:&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; strURL
    &lt;span class=&quot;synStatement&quot;&gt;Print&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;#&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; strHTML
    &lt;span class=&quot;synStatement&quot;&gt;Close&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;#&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;

   &lt;span class=&quot;synComment&quot;&gt; &#39;Debug.Print strHTML&lt;/span&gt;
    Sleep &lt;span class=&quot;synConstant&quot;&gt;250&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;0.25秒待つ&lt;/span&gt;
    get_htmlfile &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; strHTML &lt;span class=&quot;synComment&quot;&gt; &#39;リターン値で返す&lt;/span&gt;

&lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Function&lt;/span&gt;


&lt;span class=&quot;synComment&quot;&gt;&#39;URL,パラメータを受け取り、HTML文字列を返す(シフトJISページ用に変換後)&lt;/span&gt;
&lt;span class=&quot;synStatement&quot;&gt;Public&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Function&lt;/span&gt; get_htmlfile_post&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;strURL &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; strPARA &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;String&lt;/span&gt;

    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; objHTML &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;Object&lt;/span&gt;
    
    &lt;span class=&quot;synStatement&quot;&gt;Set&lt;/span&gt; objHTML &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synIdentifier&quot;&gt;CreateObject&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;MSXML2.XMLHTTP&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;
    
    objHTML&lt;span class=&quot;synStatement&quot;&gt;.Open&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;POST&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; strURL&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;False&lt;/span&gt;
    objHTML&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;setRequestHeader &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;Content-Type&amp;quot;&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;application/x-www-form-urlencoded&amp;quot;&lt;/span&gt;
    objHTML&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;synPreProc&quot;&gt;send&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;strPARA&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;synIdentifier&quot;&gt;DoEvents&lt;/span&gt;
    Sleep &lt;span class=&quot;synConstant&quot;&gt;250&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;0.25秒待つ&lt;/span&gt;

    &lt;span class=&quot;synIdentifier&quot;&gt;DoEvents&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Do&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;While&lt;/span&gt; objHTML&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;readyState &lt;span class=&quot;synStatement&quot;&gt;&amp;lt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;4&lt;/span&gt;
        &lt;span class=&quot;synIdentifier&quot;&gt;DoEvents&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Loop&lt;/span&gt;
    
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; strHTML &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;String&lt;/span&gt;
   &lt;span class=&quot;synComment&quot;&gt; &#39;strHTML = objHTML.responseText&lt;/span&gt;
    strHTML &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synIdentifier&quot;&gt;StrConv&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;objHTML&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;responseBody&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;vbUnicode&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;

   &lt;span class=&quot;synComment&quot;&gt; &#39;テキスト確認 デバッグ用&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; strFNAME &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;String&lt;/span&gt;
    strFNAME &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; ThisWorkbook&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Path &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;\testhtml.txt&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Open&lt;/span&gt; strFNAME &lt;span class=&quot;synStatement&quot;&gt;For&lt;/span&gt; Output &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;#&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Print&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;#&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synIdentifier&quot;&gt;Now&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot; に実行&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Print&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;#&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;strURL:&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; strURL
    &lt;span class=&quot;synStatement&quot;&gt;Print&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;#&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;strPARA:&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; strPARA
    &lt;span class=&quot;synStatement&quot;&gt;Print&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;#&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; strHTML &lt;span class=&quot;synComment&quot;&gt; &#39;HTML&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Close&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;#&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;

   &lt;span class=&quot;synComment&quot;&gt; &#39;Debug.Print strHTML&lt;/span&gt;
    
    get_htmlfile_post &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; strHTML &lt;span class=&quot;synComment&quot;&gt; &#39;リターン値で返す&lt;/span&gt;

&lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Function&lt;/span&gt;

&lt;span class=&quot;synComment&quot;&gt;&#39;左右のキーワードを受け取り、文字を切り出す&lt;/span&gt;
&lt;span class=&quot;synComment&quot;&gt;&#39;&amp;lt;A onclick=&amp;quot;doAction(&#39;/JRADB/accessO.html&#39;,&#39;pw15oli00/6D&#39;);return&lt;/span&gt;
&lt;span class=&quot;synComment&quot;&gt;&#39;文字列切り出し(strMOJI, &amp;quot;doAction(&#39;&amp;quot;,&amp;quot;&#39;,&#39;&amp;quot;)&lt;/span&gt;
&lt;span class=&quot;synComment&quot;&gt;&#39;文字列切り出し(strMOJI, &amp;quot;&#39;,&#39;&amp;quot;,&amp;quot;&#39;)&amp;quot;)&lt;/span&gt;
&lt;span class=&quot;synStatement&quot;&gt;Public&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Function&lt;/span&gt; 文字列切り出し&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;strMOJI &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; strLEFT &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; strRIGHT &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;String&lt;/span&gt;

    文字列切り出し &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;データ無しで初期化&lt;/span&gt;

    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; nLEFT  &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;Integer&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; nSTART &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;Integer&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; n      &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;Integer&lt;/span&gt;
    
   &lt;span class=&quot;synComment&quot;&gt; &#39;左側の位置を探す&lt;/span&gt;
    n &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synIdentifier&quot;&gt;InStr&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;strMOJI&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; strLEFT&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;左側の区切り文字を探す&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt; n &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Then&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Exit&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Function&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;見つからない時抜ける&lt;/span&gt;
    
   &lt;span class=&quot;synComment&quot;&gt; &#39;開始位置をセット&lt;/span&gt;
    nSTART &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; n &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Len(&lt;/span&gt;strLEFT&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;抜き取り開始位置&lt;/span&gt;

   &lt;span class=&quot;synComment&quot;&gt; &#39;右側キーワードを探す&lt;/span&gt;
    n &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synIdentifier&quot;&gt;InStr&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;nSTART&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; strMOJI&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; strRIGHT&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;右側の区切り文字を探す&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt; n &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Then&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Exit&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Function&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;見つからない時抜ける&lt;/span&gt;

   &lt;span class=&quot;synComment&quot;&gt; &#39;MIDで抜き出す&lt;/span&gt;
    文字列切り出し &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Mid(&lt;/span&gt;strMOJI&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; nSTART&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;n &lt;span class=&quot;synStatement&quot;&gt;-&lt;/span&gt; nSTART&lt;span class=&quot;synStatement&quot;&gt;))&lt;/span&gt;

&lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Function&lt;/span&gt;

&lt;span class=&quot;synComment&quot;&gt;&#39;リンクから、レースのTR行を探し、列 ここではワイドなどを返す 20220924追加修正&lt;/span&gt;
&lt;span class=&quot;synComment&quot;&gt;&#39;strLINK = IE_Link_InnerHTML_InStr_TR_TD(oDocument, strRACE, &amp;quot;ワイド&amp;quot;)&lt;/span&gt;
&lt;span class=&quot;synComment&quot;&gt;&#39;IEのリンクオブジェクトから文字列をInStrで探して返す&lt;/span&gt;
&lt;span class=&quot;synStatement&quot;&gt;Public&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Function&lt;/span&gt; IE_Link_InnerHTML_InStr_TR_TD&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;oDocument &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;Object&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;, _&lt;/span&gt;
                                                strレース &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;, _&lt;/span&gt;
                                                str種類 &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;String&lt;/span&gt;

    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; i &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;Integer&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; objA &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;Object&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;as HTMLAnchorElement&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; strWORK &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;String&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Dim&lt;/span&gt; n &lt;span class=&quot;synStatement&quot;&gt;As&lt;/span&gt; &lt;span class=&quot;synType&quot;&gt;Integer&lt;/span&gt;
    
   &lt;span class=&quot;synComment&quot;&gt; &#39;まず、リンクから受け取ったレース文字列を返す&lt;/span&gt;
    IE_Link_InnerHTML_InStr_TR_TD &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;ERR&amp;quot;&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;初期値にERRセット&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;For&lt;/span&gt; i &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;To&lt;/span&gt; oDocument&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Links&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Length &lt;span class=&quot;synStatement&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;
       &lt;span class=&quot;synComment&quot;&gt; &#39;レースの文字列を見つけたら　クリックじゃなかった次の種類を探す&lt;/span&gt;
        &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt; &lt;span class=&quot;synIdentifier&quot;&gt;InStr&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;oDocument&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Links&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;i&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;outerHTML&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; strレース&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Then&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;内側のHTML&lt;/span&gt;
            
           &lt;span class=&quot;synComment&quot;&gt; &#39;本当は、見つけた行、TRを取得して、その中のTDを探した方がかっこいいけど&lt;/span&gt;
           &lt;span class=&quot;synComment&quot;&gt; &#39;ここでは、カウンターのiを使い、iより後ろで見つかったものを返す&lt;/span&gt;
           &lt;span class=&quot;synComment&quot;&gt; &#39;iとnのループカウンタ、添え時に注意してね&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;For&lt;/span&gt; n &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; i &lt;span class=&quot;synStatement&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;To&lt;/span&gt; oDocument&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Links&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Length &lt;span class=&quot;synStatement&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;
               &lt;span class=&quot;synComment&quot;&gt; &#39;レースの文字列を見つけたら　クリックじゃなかった次の種類を探す&lt;/span&gt;
                &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt; &lt;span class=&quot;synIdentifier&quot;&gt;InStr&lt;/span&gt;&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;oDocument&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Links&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;n&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;outerHTML&lt;span class=&quot;synStatement&quot;&gt;,&lt;/span&gt; str種類&lt;span class=&quot;synStatement&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Then&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;内側のHTML&lt;/span&gt;
                    IE_Link_InnerHTML_InStr_TR_TD &lt;span class=&quot;synStatement&quot;&gt;=&lt;/span&gt; oDocument&lt;span class=&quot;synStatement&quot;&gt;.&lt;/span&gt;Links&lt;span class=&quot;synStatement&quot;&gt;(&lt;/span&gt;n&lt;span class=&quot;synStatement&quot;&gt;).&lt;/span&gt;outerHTML &lt;span class=&quot;synComment&quot;&gt; &#39;見つけたAタグオブジェ(リンク)を代入&lt;/span&gt;
                    &lt;span class=&quot;synStatement&quot;&gt;Exit&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;For&lt;/span&gt; &lt;span class=&quot;synComment&quot;&gt; &#39;↑同じ行TRのチェックしてないけど・・・&lt;/span&gt;
                &lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt;
            &lt;span class=&quot;synStatement&quot;&gt;Next&lt;/span&gt; n
            
            &lt;span class=&quot;synStatement&quot;&gt;Exit&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;For&lt;/span&gt;&lt;span class=&quot;synComment&quot;&gt; &#39;見つけたのでループを抜ける ↑が同じTR行内のチェックしてないけどね・・・&lt;/span&gt;
        &lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;If&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;Next&lt;/span&gt; i
    
Debug&lt;span class=&quot;synStatement&quot;&gt;.Print&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;リターン:&amp;quot;&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;&amp;amp;&lt;/span&gt; IE_Link_InnerHTML_InStr_TR_TD
&lt;span class=&quot;synStatement&quot;&gt;End&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;Function&lt;/span&gt;
&lt;/pre&gt;&lt;p&gt;&lt;b&gt;簡単な解説&lt;/b&gt;&lt;br /&gt;
日付: 2026/04/25&lt;/p&gt;&lt;p&gt;タイトル仮):&lt;br /&gt;
VBAでMSXML2.XMLHTTPを使用して JRAオッズ 人気順で単勝・馬連・馬単を同時に取得したい&lt;/p&gt;&lt;p&gt;0.質問内容と過去の設置動画を紹介する&lt;/p&gt;&lt;p&gt;下記の質問メッセージをいただきました&lt;/p&gt;&lt;p&gt;VBAでXMLHTTPを使用して JRAオッズ 人気順で単勝・馬連・馬単を同時に取得したい&lt;br /&gt;
馬連上位5件&lt;br /&gt;
馬単上位5件&lt;br /&gt;
の馬番号を取得したい&lt;/p&gt;&lt;p&gt;おっさんの回答:&lt;/p&gt;&lt;p&gt;VBAでXMLHTTPを使用するコードですね。&lt;br /&gt;
(パワークエリでは無くて、)&lt;/p&gt;&lt;p&gt;26年2月の謝罪動画&lt;br /&gt;
&lt;a href=&quot;https://www.youtube.com/watch?v=2Pt_-qVQQ_c&quot;&gt;https://www.youtube.com/watch?v=2Pt_-qVQQ_c&lt;/a&gt;&lt;br /&gt;
のコードと設置方法を参考にして、&lt;br /&gt;
改造してみます。&lt;/p&gt;&lt;p&gt;1.まず実行テストを見せる&lt;/p&gt;&lt;p&gt;①B2に開催地を入れます&lt;/p&gt;&lt;p&gt;今週のオッズ&lt;br /&gt;
4月25日（土曜）&lt;br /&gt;
2回東京1日&lt;br /&gt;
3回京都1日&lt;br /&gt;
1回福島5日&lt;br /&gt;
4月26日（日曜）&lt;br /&gt;
2回東京2日&lt;br /&gt;
3回京都2日&lt;/p&gt;&lt;p&gt;②テスト用のレースに1を立てます&lt;br /&gt;
最終オッズや発送済みだとスキップするので、発走時刻をクリアして、&lt;br /&gt;
テスト用のレースに1を立てます&lt;/p&gt;&lt;p&gt;③実行ボタンを押します&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;2.簡単なコード・プログラムの流れを解説する&lt;/p&gt;&lt;p&gt;Set objHTML = CreateObject(&quot;MSXML2.XMLHTTP&quot;)&lt;br /&gt;
でJRAのページを読み込み、&lt;br /&gt;
Set oDocument = CreateObject(&quot;htmlfile&quot;)&lt;br /&gt;
oDocument.write strHTML  &#39;取得したHTMLをセット&lt;/p&gt;&lt;p&gt;HTMLのドキュメントオブジェクトとして処理&lt;br /&gt;
(リンクを探したり、テーブルのデータを取得したり)&lt;br /&gt;
を行う、&lt;br /&gt;
そんなパターンの連続です&lt;/p&gt;&lt;p&gt;処理の流れを、現物を見ながら説明する&lt;/p&gt;&lt;p&gt;JRAホームページからオッズを探す&lt;br /&gt;
&#39;2.1 JRA TOP ページの表示&lt;br /&gt;
&#39;2.2 リンクからオッズを取得(リンクを押すような処理・次を読む)&lt;br /&gt;
↓&lt;br /&gt;
MENUシートB2の日付を探して次のページへ&lt;br /&gt;
&#39;2.3 B2開催のリンクを探して、次(レース・オッズ一覧)を読む&lt;br /&gt;
&#39;開催日のリンクをあさる&lt;br /&gt;
strLINK = IE_Link_InnerHTML_InStr_Click(oDocument, Sheets(&quot;MENU&quot;).Range(&quot;B2&quot;))&lt;br /&gt;
↓&lt;br /&gt;
ループ処理(1R-12R)まで、フラグと最終オッズを見ながら処理する&lt;br /&gt;
&#39;2.4 1Rから12Rまで、ループする。※これだと前日発売の時1Rでトラブルなぁ&lt;br /&gt;
For nRACE = 1 To 12  &#39;一から十二まで&lt;br /&gt;
    &#39;B5からのフラグが立っていたら And 最終じゃなければ&lt;br /&gt;
    &#39;レースを取り込む&lt;br /&gt;
    If Sheets(&quot;MENU&quot;).Range(&quot;B4&quot;).Offset(nRACE, 0) = 1 _&lt;br /&gt;
      And Sheets(&quot;MENU&quot;).Range(&quot;B4&quot;).Offset(nRACE, 1) &lt;&gt; &quot;最終&quot; Then&lt;/p&gt;&lt;p&gt;初回なら、目的の単勝レースをHTMLドキュメントにする&lt;br /&gt;
単勝馬番順&lt;br /&gt;
↓&lt;br /&gt;
単勝人気順にしたい&lt;/p&gt;&lt;p&gt;&#39;2.4.1 初回は単勝のレース番号を読み、※スグに人気順に切り替える←ココポイント&lt;br /&gt;
    If str初回FLG = &quot;初回&quot; Then &#39;フラグが初回？&lt;br /&gt;
        &#39;リンクから、レースのTR行を探し、列 ここでは単勝を探して返す&lt;br /&gt;
        strLINK = IE_Link_InnerHTML_InStr_TR_TD(oDocument, strRACE, &quot;単勝&quot;)&lt;br /&gt;
&#39;2.4.2 初回は単勝のレース番号を読み、※スグに人気順に切り替える←ココポイント&lt;br /&gt;
    If str初回FLG = &quot;初回&quot; Then &#39;フラグが初回？&lt;br /&gt;
        &#39;リンクから、レースのTR行を探し、列 ここでは単勝を探して返す&lt;br /&gt;
        strLINK = IE_Link_InnerHTML_InStr_TR_TD(oDocument, strRACE, &quot;人気順&quot;)&lt;br /&gt;
        str初回FLG = &quot;フラグを折る・初回を抜ける&quot;  &#39;フラグを折る。次の指示&lt;br /&gt;
        &#39;人気順を探して押したいので(ドキュメントを人気順にしたい)&lt;/p&gt;&lt;p&gt;※ポイント&lt;br /&gt;
&#39;2.4.3 ここで、やっと単勝の人気順を読む&lt;br /&gt;
    strURL = &quot;&lt;a href=&quot;https://www.jra.go.jp&quot;&gt;https://www.jra.go.jp&lt;/a&gt;&quot; &amp; 文字列切り出し(strLINK, &quot;doAction(&#39;&quot;, &quot;&#39;,&quot;) &#39;URL&lt;br /&gt;
    strPARA = &quot;cname=&quot; &amp; 文字列切り出し(strLINK, &quot;&#39;, &#39;&quot;, &quot;&#39;)&quot;)   &#39;パラメーター&lt;br /&gt;
    strHTML = get_htmlfile_post(strURL, strPARA)  &#39;パラメーターを付けて開く&lt;/p&gt;&lt;p&gt;&#39;2.4.4 単勝の表、テーブルを取得する&lt;br /&gt;
    &#39;TABLEタグを抜きデータをセット&lt;br /&gt;
    Set objTABLEs = oDocument.getElementsByTagName(&quot;TABLE&quot;)&lt;/p&gt;&lt;p&gt;&#39;2.4.5 馬連オッズの処理&lt;br /&gt;
&#39;馬連オッズへドキュメントを移動する(読み込みたいので)&lt;br /&gt;
            &#39;単勝人気順のドキュメントから、&quot;馬連&quot;のリンクを探す&lt;br /&gt;
            strLINK = IE_Link_InnerHTML_InStr_Click(oDocument, &quot;馬連&quot;)&lt;/p&gt;&lt;p&gt;&#39;2.4.6 馬単オッズの処理&lt;br /&gt;
&#39;馬単オッズへドキュメントを移動する(読み込みたいので)&lt;br /&gt;
            &#39;上の馬連人気順のドキュメントから、&quot;馬単&quot;のリンクを探す&lt;br /&gt;
            strLINK = IE_Link_InnerHTML_InStr_Click(oDocument, &quot;馬単&quot;)&lt;/p&gt;&lt;p&gt;&#39;2.4.7 作業用シートからレース別に転記する&lt;br /&gt;
Sheets(nRACE &amp; &quot;R&quot;).Select  &#39;シートの切り替え&lt;br /&gt;
作業用シートからレース別へデータをコピーする&lt;/p&gt;&lt;p&gt;※※ここで1レース単位終了、ループの頭へ戻る&lt;br /&gt;
現在のドキュメントの状態は、&lt;br /&gt;
&quot;馬単人気順&quot;のページ、ドキュメントを保持しています&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;二回目のループ&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&#39;2.4.8 ２回目以降は、馬単のオッズの位置でレースを選択(なんか紛らわしいけど・・)&lt;br /&gt;
    &#39;リンクから該当するレースを探しクリックする &quot;1R&quot;..&quot;12R&quot;&lt;br /&gt;
    &#39;Call IE_Link_InnerHTML_InStr_Click(oDocument, &quot;&quot;&quot;&quot; &amp; strRACE &amp; &quot;&quot;&quot;&quot;)&lt;br /&gt;
    strLINK = IE_Link_InnerHTML_InStr_Click(oDocument, strRACE)&lt;br /&gt;
ここで、このドキュメントで&lt;br /&gt;
レースを条件にデータを探すと、&lt;br /&gt;
次のレースの馬単のページ、ドキュメントになる&lt;/p&gt;&lt;p&gt;単勝に戻したいので、そのレースの単勝を探す&lt;br /&gt;
&#39;2.4.9 ２回目以降は、レース選択後、単勝に戻す(なんか紛らわしいけど・・)&lt;br /&gt;
&#39;リンクから単勝を探しクリックする※一度馬単になっているので、もったいないけど&lt;br /&gt;
  &#39;Call IE_Link_InnerHTML_InStr_Click(oDocument, &quot;&quot;&quot;&quot; &amp; strRACE &amp; &quot;&quot;&quot;&quot;)&lt;br /&gt;
   strLINK = IE_Link_InnerHTML_InStr_Click(oDocument, &quot;単勝&quot;)&lt;/p&gt;&lt;p&gt;このIfの流れで、&lt;br /&gt;
            &#39;2.4.3 ここで、やっと単勝の人気順を読む&lt;br /&gt;
            strURL = &quot;&lt;a href=&quot;https://www.jra.go.jp&quot;&gt;https://www.jra.go.jp&lt;/a&gt;&quot; &amp; 文字列切り出し(strLINK, &quot;doAction(&#39;&quot;, &quot;&#39;,&quot;) &#39;URL&lt;br /&gt;
            strPARA = &quot;cname=&quot; &amp; 文字列切り出し(strLINK, &quot;&#39;, &#39;&quot;, &quot;&#39;)&quot;)   &#39;パラメーター&lt;br /&gt;
            strHTML = get_htmlfile_post(strURL, strPARA)  &#39;パラメーターを付けて開く&lt;br /&gt;
へ合流して、&lt;br /&gt;
ループを繰り返すと、&lt;br /&gt;
人気順のテーブルをループ処理で取得できます&lt;br /&gt;
※人間的には、馬単の読み込みが2回になるので、ループ的には美しくないのですが・・・・&lt;/p&gt;&lt;p&gt;3.おわりの挨拶といつものバグ報告&lt;/p&gt;&lt;p&gt;現在の不具合&lt;br /&gt;
1.枠番号が空白&lt;br /&gt;
単純にテーブルテキストを取得しているので、&lt;br /&gt;
画像表示の枠番号が取得されていない、&lt;br /&gt;
個別に画像ファイル名で取得しないとだめです&lt;/p&gt;&lt;p&gt;2.上位5件ならと手抜きをしているので・・・&lt;br /&gt;
上位5件なら、&lt;br /&gt;
テーブル0番目を抜いてしまえばOKと考えていたが、&lt;/p&gt;&lt;p&gt;3回京都1日 8レース&lt;br /&gt;
のように、&lt;br /&gt;
6頭立てのレースだと、&lt;br /&gt;
馬連のテーブル0が上位4までの出力だった&lt;br /&gt;
※4列表示で、均等にしているので？出走する馬の数が少ないと、5以下になる・・・&lt;br /&gt;
また、全ての人気順を取得したいなど、追加要望があった時の対応など、&lt;br /&gt;
固定のテーブル(0)処理は、良くないですね・・・・&lt;/p&gt;&lt;p&gt;こんな感じで、&lt;br /&gt;
不具合がありますが、&lt;br /&gt;
人気順のオッズを取得することができると思います&lt;br /&gt;
アレンジして、使ってみてください。&lt;/p&gt;&lt;p&gt;解決のヒントとなれば、幸いです。&lt;/p&gt;&lt;p&gt;ソースコード全体とマクロ付きファイルのダウンロード&lt;br /&gt;
 &lt;a href=&quot;https://note.com/calm_slug2867/n/nd5e26b1b5292&quot;&gt;https://note.com/calm_slug2867/n/nd5e26b1b5292&lt;/a&gt; &lt;br /&gt;
でマクロ付きの.xlsmをダウンロードできます&lt;br /&gt;
合わせて、使ってみてください。&lt;/p&gt;
</content>        
        <category term="VBA" label="VBA" />
        
        <category term="Excel" label="Excel" />
        
        <link rel="enclosure" href="https://cdn.image.st-hatena.com/image/scale/5f01b28b00e8eb268e337b2ba81adab45199c499/backend=imagemagick;version=1;width=1300/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fk%2Fken3memo%2F20260425%2F20260425214850.png" type="image/png" length="0" />

        <author>
            <name>ken3memo</name>
        </author>
    </entry>
    
  
    
    
    <entry>
        <title>2026/04/23頃？VREW4のバージョンアップが来そうですね。</title>
        <link href="https://ken3memo.hatenablog.com/entry/2026/04/16/060000"/>
        <id>hatenablog://entry/17179246901376868676</id>
        <published>2026-04-16T06:00:00+09:00</published>
        <updated>2026-04-22T10:23:53+09:00</updated>        <summary type="html">04/22 バージョンアップされました 04/22バージョンアップ後にスクショを撮る私は(も？) AIショート動画連発で収益停止になったし使わないかもしれないけど・・・ 2026/04/23頃？VREW4のバージョンアップが来そうですね。 YouTubeライブ配信予定のスクショ [Vrew] 4.0.0 업데이트 안내 - 이미지 하나로 생성부터 영상까지 완성 https://www.youtube.com/watch?v=E0mJj9pPhDc www.youtube.com</summary>
        <content type="html">&lt;p&gt;04/22 バージョンアップされました&lt;/p&gt;
&lt;figure class=&quot;figure-image figure-image-fotolife&quot; title=&quot;04/22バージョンアップ後にスクショを撮る&quot;&gt;&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260422/20260422101742.jpg&quot; width=&quot;683&quot; height=&quot;251&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;figcaption&gt;04/22バージョンアップ後にスクショを撮る&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;hr&gt;&lt;/p&gt;&lt;p&gt;私は(も？) &lt;strong&gt;AIショート動画連発&lt;/strong&gt;で&lt;strong&gt;収益停止&lt;/strong&gt;になったし使わないかもしれないけど・・・&lt;br /&gt;
2026/04/23頃？VREW4のバージョンアップが来そうですね。&lt;/p&gt;
&lt;figure class=&quot;figure-image figure-image-fotolife&quot; title=&quot;YouTubeライブ配信予定のスクショ&quot;&gt;&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260415/20260415183051.jpg&quot; width=&quot;825&quot; height=&quot;597&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;figcaption&gt;YouTubeライブ配信予定のスクショ&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;br /&gt;
[Vrew] 4.0.0 업데이트 안내 - 이미지 하나로 생성부터 영상까지 완성&lt;br /&gt;
&lt;a href=&quot;https://www.youtube.com/watch?v=E0mJj9pPhDc&quot;&gt;https://www.youtube.com/watch?v=E0mJj9pPhDc&lt;/a&gt;&lt;br /&gt;
&lt;iframe width=&quot;420&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/E0mJj9pPhDc?feature=oembed&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; allowfullscreen title=&quot;[Vrew] 4.0.0 업데이트 안내 - 이미지 하나로 생성부터 영상까지 완성&quot;&gt;&lt;/iframe&gt;&lt;cite class=&quot;hatena-citation&quot;&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=E0mJj9pPhDc&quot;&gt;www.youtube.com&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
</content>        
        <link rel="enclosure" href="https://cdn.image.st-hatena.com/image/scale/ece2637b70739ac77c67b7d45670c26adc8766cd/backend=imagemagick;version=1;width=1300/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fk%2Fken3memo%2F20260415%2F20260415183051.jpg" type="image/jpeg" length="0" />

        <author>
            <name>ken3memo</name>
        </author>
    </entry>
    
  
    
    
    <entry>
        <title>Excel VBA シート内のイベントでドラッグアンドドロップを判断 移動元のセルを灰色、移動先を赤色にする方法</title>
        <link href="https://ken3memo.hatenablog.com/entry/2026/04/15/060000"/>
        <id>hatenablog://entry/17179246901376640032</id>
        <published>2026-04-15T06:00:00+09:00</published>
        <updated>2026-04-15T06:00:04+09:00</updated>        <summary type="html">やりたいこと: シート内のイベントでドラッグアンドドロップを判断して 移動元のセルを灰色、移動先を赤色にする www.youtube.com方針・アプローチ方法: イベントは、シートのイベント Worksheet_Changeのイベントでタイミングを取り、 リボンの時代に、 昔のコマンドバーオブジェクトから 元に戻す(CTRL+Z)のツールチップに表示されている文字列を取得して ドラッグアンドドロップが実行されたか？の判断材料にするって、何言ってんの？このおじさんは・・って感じなので、 細かいテストのコードから説明を開始します、 ダウンロード可能なファイルは https://note.com/…</summary>
        <content type="html">&lt;p&gt;やりたいこと:&lt;br /&gt;
シート内のイベントでドラッグアンドドロップを判断して&lt;br /&gt;
移動元のセルを灰色、移動先を赤色にする&lt;br /&gt;
&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/ayLojPeULEQ?feature=oembed&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; allowfullscreen title=&quot;【Excel VBA】ドラッグアンドドロップを判定する方法！移動元のセルに自動で色をつける 『元に戻す』のツールチップを覗いて判断するマクロを紹介する&quot;&gt;&lt;/iframe&gt;&lt;cite class=&quot;hatena-citation&quot;&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=ayLojPeULEQ&quot;&gt;www.youtube.com&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;&lt;p&gt;方針・アプローチ方法:&lt;br /&gt;
イベントは、シートのイベント Worksheet_Changeのイベントでタイミングを取り、&lt;br /&gt;
リボンの時代に、&lt;br /&gt;
昔のコマンドバーオブジェクトから&lt;br /&gt;
元に戻す(CTRL+Z)のツールチップに表示されている文字列を取得して&lt;br /&gt;
ドラッグアンドドロップが実行されたか？の判断材料にする&lt;/p&gt;&lt;p&gt;って、何言ってんの？このおじさんは・・って感じなので、&lt;br /&gt;
細かいテストのコードから説明を開始します、&lt;/p&gt;&lt;p&gt;&lt;hr&gt;&lt;br /&gt;
ダウンロード可能なファイルは&lt;br /&gt;
&lt;a href=&quot;https://note.com/calm_slug2867/n/neb62fcc0e617?sub_rt=share_pb&quot;&gt;https://note.com/calm_slug2867/n/neb62fcc0e617?sub_rt=share_pb&lt;/a&gt;&lt;br /&gt;
を見てください&lt;hr&gt;&lt;/p&gt;&lt;p&gt;1.元に戻す(CTRL+Z)のツールチップとは・・・ここです&lt;/p&gt;&lt;p&gt;Excelで何か、入力をしたり、変更します&lt;br /&gt;
左上のクイックツールバーの&lt;br /&gt;
CTRL+Z 元に戻す&lt;br /&gt;
に&lt;br /&gt;
マウスカーソルを合わせると、&lt;/p&gt;
&lt;figure class=&quot;figure-image figure-image-fotolife&quot; title=&quot;元に戻すのコマンドにマウスカーソルを合わせると履歴が見える、本当はこれを取りたかったけど&quot;&gt;&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260415/20260415043045.jpg&quot; width=&quot;1200&quot; height=&quot;675&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;figcaption&gt;元に戻すのコマンドにマウスカーソルを合わせると履歴が見える、本当はこれを取りたかったけど&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;直前の動作が表示されると思います&lt;br /&gt;
添付画像の①元に戻すのアイコンを押すと、動作が保存されている&lt;br /&gt;
これを取得出来たらいいなぁ・・・&lt;/p&gt;&lt;p&gt;2.VBAでコマンド やり直し&quot;元に戻す&quot;を取得する&lt;/p&gt;&lt;p&gt;懐かしのコマンドバーをAIに聞いて探ってみます&lt;/p&gt;
&lt;pre class=&quot;code vba&quot; data-lang=&quot;vba&quot; data-unlink&gt;&amp;#39;AIに&amp;#34;元に戻す&amp;#34;コマンドを取得するコードを聞いてテスト
&amp;#39;26/04/14 Win10延長サポート+MS365のExcelでテスト
Sub undoCtrl()
    Dim undoCtrl As CommandBarControl
    Dim fullText As String

    &amp;#39; Excelの内部ID「128（元に戻す）」を使って、ボタンの情報を取得します
    Set undoCtrl = Application.CommandBars.FindControl(ID:=128)

    &amp;#39; ボタンが見つからない、または履歴が空の場合の処理
    If undoCtrl Is Nothing Then
        MsgBox &amp;#34;操作履歴が見つかりませんでした。&amp;#34;
        Exit Sub
    End If

    &amp;#39; Captionプロパティには「元に戻す: 貼り付け (&amp;amp;U)」のような文字列が入っています
    Debug.Print &amp;#34;.Caption&amp;#34;, undoCtrl.Caption
    
    &amp;#39; TooltipTextプロパティには
    &amp;#39; 元に戻す(&amp;amp;U) セルの挿入 (Ctrl+Z)
    &amp;#39; 元に戻す(&amp;amp;U) セル C3 への &amp;#39;123&amp;#39; の入力 (Ctrl+Z)
    &amp;#39;のような文字列が入っています
    Debug.Print &amp;#34;.TooltipText&amp;#34;, undoCtrl.TooltipText

    MsgBox undoCtrl.TooltipText, vbInformation

End Sub&lt;/pre&gt;&lt;p&gt;3.ワークシートのイベントで使ってみる&lt;/p&gt;
&lt;pre class=&quot;code vba&quot; data-lang=&quot;vba&quot; data-unlink&gt;&amp;#39;シートのイベントで使ってみます
Private Sub Worksheet_Change(ByVal Target As Range)

    Debug.Print Target.Address &amp;amp; &amp;#34; -- で操作が発生したよ&amp;#34;

    &amp;#39;コマンドバーを見る
    Dim objCtrl As CommandBarControl
    Dim txtTooltipText As String
    
    &amp;#39;Excel操作でツールチップを更新待ち、無くても良いか？後でチェック
    DoEvents
    
    &amp;#39; やり直し「元に戻す」ボタンを取得 128の固定値でテスト
    Set objCtrl = Application.CommandBars.FindControl(ID:=128)
    If objCtrl Is Nothing Then
        Debug.Print &amp;#34;128で「元に戻す」が見つかりません&amp;#34;
    Else
        &amp;#39;ツールチップのテキストを取得する
        txtTooltipText = objCtrl.TooltipText
        Debug.Print txtTooltipText
    End If

End Sub&lt;/pre&gt;&lt;p&gt;4.質問の試作&lt;/p&gt;&lt;p&gt;ドラッグアンドドロップ時の&lt;br /&gt;
１つ前のアドレスを保存して、&lt;br /&gt;
色を変更してみます&lt;br /&gt;
※テスト不足のバグ付きですが、参考となれば&lt;/p&gt;
&lt;pre class=&quot;code vba&quot; data-lang=&quot;vba&quot; data-unlink&gt;Option Explicit

Private str移動元 As String  &amp;#39;一つ前で移動元アドレスを保存するための変数

Private Sub Worksheet_Change(ByVal Target As Range)

&amp;#39; エラーが発生したときに、強制的に「ErrorExit」へ飛ばします
    On Error GoTo ErrorExit
&amp;#39;↑デバッグ中は、注意。

    &amp;#39;いつものイベントを一時停止する呪文
    Application.EnableEvents = False
    Debug.Print Target.Address &amp;amp; &amp;#34; -- で操作が発生したよ&amp;#34;

    &amp;#39;コマンドバーを見る
    Dim objCtrl As CommandBarControl
    Dim txtTooltipText As String
    
    &amp;#39;Excel操作でツールチップを更新待ち、無くても良いか？後でチェック
    DoEvents
    
    &amp;#39; やり直し「元に戻す」ボタンを取得 128の固定値でテスト
    Set objCtrl = Application.CommandBars.FindControl(ID:=128)
    If objCtrl Is Nothing Then
        Debug.Print &amp;#34;128で「元に戻す」が見つかりません&amp;#34;
    Else
        &amp;#39;ツールチップのテキストを取得する
        txtTooltipText = objCtrl.TooltipText
        Debug.Print txtTooltipText
        &amp;#39;&amp;#34;ドラッグ アンド ドロップ&amp;#34;の時、特殊な処理を行う
        If InStr(txtTooltipText, &amp;#34;ドラッグ アンド ドロップ&amp;#34;) &amp;gt; 0 Then
            If Trim(str移動元 &amp;amp; &amp;#34;&amp;#34;) = &amp;#34;&amp;#34; Then &amp;#39;1回目の時は、アドレスのみ保存する
                str移動元 = Target.Address
            Else  &amp;#39;二回目の時、連続の時色の処理を行う
                &amp;#39;元セル(保存された変数を利用)を灰色に
                Range(str移動元).Interior.Color = RGB(128, 128, 128)
                &amp;#39;移動先 2回目は、素直にTargetを使用する
                Target.Interior.Color = RGB(255, 0, 0)
                &amp;#39;2回目の処理が終わったので、保存アドレスを忘れないでクリアする
                str移動元 = &amp;#34;&amp;#34;
            End If
        
        Else &amp;#39;他の操作時、移動元アドレスをクリアする
            str移動元 = &amp;#34;&amp;#34;
        End If
    End If

ErrorExit:
    &amp;#39; (正常に終わっても、エラーで飛ばされてきても、ここを通す)
    &amp;#39;イベントを必ず再開
    Application.EnableEvents = True

End Sub&lt;/pre&gt;&lt;p&gt;5.おわりの挨拶&lt;/p&gt;&lt;p&gt;少し、アプローチが違うかもしれませんが、&lt;/p&gt;&lt;p&gt;連続で&lt;br /&gt;
Worksheet_Change&lt;br /&gt;
イベントが発生するので、&lt;br /&gt;
ツールチップの文字列、&lt;br /&gt;
If InStr(txtTooltipText, &quot;ドラッグ アンド ドロップ&quot;) &gt; 0&lt;br /&gt;
で判断して、&lt;br /&gt;
ドロップ元(移動元)とドロップ先(移動後)の色を変化させてみました&lt;/p&gt;&lt;p&gt;解決のヒントとなれば幸いです。&lt;/p&gt;&lt;p&gt;【結論：Excelは「元に戻す」を見ればD&amp;Dを完全に見抜けます！】&lt;/p&gt;&lt;p&gt;Worksheet_Changeイベントだけでは判別不能な「ドラッグ＆ドロップ（D&amp;D）」操作。&lt;br /&gt;
この動画では、内部ID「128」のツールチップを覗き見るという、AIも驚く裏技で「移動元」と「移動先」を自動で色分けする仕組みを実演解説します。&lt;/p&gt;&lt;p&gt;▼ お急ぎの方は、各見どころへ直接ジャンプ！&lt;/p&gt;&lt;p&gt;1. 【核心】Excelが隠し持つ「操作の証拠」を掴む瞬間&lt;br /&gt;
タイムライン： 01:26 &lt;a href=&quot;https://www.youtube.com/watch?v=ayLojPeULEQ&amp;t=86&quot;&gt;https://www.youtube.com/watch?v=ayLojPeULEQ&amp;t=86&lt;/a&gt;&lt;br /&gt;
内容： 「元に戻す」ボタンの内部情報を取得するロジック。これがあらゆる操作特定の鍵です。&lt;/p&gt;&lt;p&gt;2. 【技術解説】VBAでツールチップの文字を読み取る基本コード&lt;br /&gt;
タイムライン： 03:42 &lt;a href=&quot;https://www.youtube.com/watch?v=ayLojPeULEQ&amp;t=222&quot;&gt;https://www.youtube.com/watch?v=ayLojPeULEQ&amp;t=222&lt;/a&gt;&lt;br /&gt;
内容： CommandBars(ID:=128)から操作名を取得する具体的な記述方法。&lt;/p&gt;&lt;p&gt;3. 【難所攻略】D&amp;D特有の「2回連続イベント」を制御する&lt;br /&gt;
タイムライン： 11:01 &lt;a href=&quot;https://www.youtube.com/watch?v=ayLojPeULEQ&amp;t=661&quot;&gt;https://www.youtube.com/watch?v=ayLojPeULEQ&amp;t=661&lt;/a&gt;&lt;br /&gt;
内容： 2回発生するChangeイベントを一つの操作として完結させるロジックの構築。&lt;/p&gt;&lt;p&gt;4. 【実演検証】実際にセルが灰色と赤色にパッと変わる瞬間&lt;br /&gt;
タイムライン： 15:45 &lt;a href=&quot;https://www.youtube.com/watch?v=ayLojPeULEQ&amp;t=945&quot;&gt;https://www.youtube.com/watch?v=ayLojPeULEQ&amp;t=945&lt;/a&gt;&lt;br /&gt;
内容： D&amp;D後に「移動元」と「移動先」が視覚化される様子を実演。&lt;/p&gt;&lt;p&gt;5. 【誠実なポイント：注意点】&lt;br /&gt;
・Excelの言語設定に依存する「文字列判定」のコツと、将来の仕様変更への懸念についても正直に解説しています。&lt;/p&gt;&lt;p&gt;▼&lt;br /&gt;
Excel VBAの可能性を広げるこの「ツールチップ監視術」、試してみた感想をぜひコメント欄で教えてください！&lt;br /&gt;
「こんな操作も検知できたよ！」という報告もお待ちしています。&lt;/p&gt;&lt;p&gt;#ExcelVBA #ドラッグアンドドロップ #CommandBars #仕事効率化 #VBA中級者 #裏技&lt;/p&gt;
</content>        
        <category term="Excel" label="Excel" />
        
        <category term="VBA" label="VBA" />
        
        <link rel="enclosure" href="https://cdn.image.st-hatena.com/image/scale/9ed0dd612421c434375b0aecc5585bd13897db41/backend=imagemagick;version=1;width=1300/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fk%2Fken3memo%2F20260415%2F20260415043045.jpg" type="image/jpeg" length="0" />

        <author>
            <name>ken3memo</name>
        </author>
    </entry>
    
  
    
    
    <entry>
        <title>Power QueryでJRA馬連オッズ取得の手順解説 Html.Table関数を使用してTH,TDタグ指定で値を取得する方法</title>
        <link href="https://ken3memo.hatenablog.com/entry/2026/04/06/140000"/>
        <id>hatenablog://entry/17179246901373552582</id>
        <published>2026-04-06T14:00:00+09:00</published>
        <updated>2026-04-06T14:00:01+09:00</updated>        <summary type="html">【Excel】Power QueryでHTMLソースから値を抜き出す Html.Table関数を使用してTH,TDタグ指定で値を取得する方法 JRA馬連オッズ取得を例題にして解説を行うテストファイルのダウンロードページは https://note.com/calm_slug2867/n/n59bdd9dcfb89?sub_rt=share_pb を見てください。ライブ配信動画URL: https://youtube.com/live/EUGMC7UzUz8 www.youtube.com 【タイムライン】 00:00:00 イントロ：大阪杯のオッズ取得テスト 00:02:01 手順01：POS…</summary>
        <content type="html">&lt;p&gt;【Excel】Power QueryでHTMLソースから値を抜き出す Html.Table関数を使用してTH,TDタグ指定で値を取得する方法 JRA馬連オッズ取得を例題にして解説を行う&lt;/p&gt;&lt;p&gt;テストファイルのダウンロードページは&lt;br /&gt;
&lt;a href=&quot;https://note.com/calm_slug2867/n/n59bdd9dcfb89?sub_rt=share_pb&quot;&gt;https://note.com/calm_slug2867/n/n59bdd9dcfb89?sub_rt=share_pb&lt;/a&gt;&lt;br /&gt;
を見てください。&lt;/p&gt;&lt;p&gt;ライブ配信動画URL:&lt;br /&gt;
&lt;a href=&quot;https://youtube.com/live/EUGMC7UzUz8&quot;&gt;https://youtube.com/live/EUGMC7UzUz8&lt;/a&gt;&lt;br /&gt;
&lt;iframe src=&quot;https://www.youtube.com/embed/EUGMC7UzUz8?enablejsapi=1&quot; width=&quot;560&quot; height=&quot;315&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;br&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=EUGMC7UzUz8&quot;&gt;www.youtube.com&lt;/a&gt;&lt;br /&gt;
【タイムライン】&lt;br /&gt;
00:00:00 イントロ：大阪杯のオッズ取得テスト&lt;br /&gt;
00:02:01 手順01：POST送信でHTMLソース全体を取得する&lt;br /&gt;
00:03:57 手順02：馬連テーブルのソースを分割・抽出する&lt;br /&gt;
00:13:40 手順03：単体テーブルからの値取り出しテスト（Html.Table活用）&lt;br /&gt;
00:26:23 手順04：List.Transformで全テーブルを一括変換する&lt;br /&gt;
00:37:03 蛇足：なぜUI操作（Web.Page）だと失敗するのか？検証&lt;br /&gt;
00:44:47 おまけ：馬単だと成功する謎の現象&lt;/p&gt;&lt;p&gt;【結論：パワークエリの「最後の一行が消える」問題は、ソース直接分割で完勝できます！】&lt;/p&gt;&lt;p&gt;JRAの馬連オッズ取得で、なぜか「最後の一行」だけが取り込めず悩んでいませんか？&lt;br /&gt;
UI操作（Web.Page関数）の限界を、M言語によるソース直接分割で突破する方法を解説します。&lt;/p&gt;&lt;p&gt;1. 【核心：なぜ失敗するのか？】Web.Page関数の限界を検証&lt;br /&gt;
00:43:03 &lt;a href=&quot;https://youtube.com/live/EUGMC7UzUz8?t=2583&quot;&gt;https://youtube.com/live/EUGMC7UzUz8?t=2583&lt;/a&gt;&lt;br /&gt;
UI操作でデータが欠ける原因を突き止めます。&lt;/p&gt;&lt;p&gt;2. 【必見：解決策】HTMLソースをText.Splitで強制分解&lt;br /&gt;
00:03:57 &lt;a href=&quot;https://youtube.com/live/EUGMC7UzUz8?t=237&quot;&gt;https://youtube.com/live/EUGMC7UzUz8?t=237&lt;/a&gt;&lt;br /&gt;
M言語でテーブル構造を直接切り分ける、本動画のメインディッシュです。&lt;/p&gt;&lt;p&gt;3. 【正直にお伝えします：注意点】&lt;br /&gt;
ライブならではの試行錯誤も含め、生のプログラミングの過程を公開しています。&lt;br /&gt;
「100%正解」の提示ではなく、現場でどうデバッグしていくかのヒントにしてください！&lt;/p&gt;&lt;p&gt;#PowerQuery #Excel #JRA #スクレイピング #M言語 #競馬予想&lt;/p&gt;&lt;p&gt;&lt;hr&gt;&lt;/p&gt;&lt;p&gt;ライブ時に使用した台本:&lt;/p&gt;&lt;p&gt;まず、HTMLソースからTABLEを集める&lt;/p&gt;&lt;p&gt;01HTMLソース全体を取得する&lt;br /&gt;
いつものようにPOST送信で、&lt;br /&gt;
HTMLのソースを取得する&lt;br /&gt;
改行区切りで出力する&lt;/p&gt;
&lt;pre class=&quot;code m&quot; data-lang=&quot;m&quot; data-unlink&gt;let

    // JRAホームページからソースを取得する POST送信で結果を受け取る
    strURL = &amp;#34;https://www.jra.go.jp/JRADB/accessO.html&amp;#34;,
    // セルからパラメーターを受け取る strPARA = Text.ToBinary(&amp;#34;cname=pw15oli00/6D&amp;#34;),固定をやめるため
    strCNAME = &amp;#34;cname=&amp;#34; &amp;amp; Excel.CurrentWorkbook(){[Name=&amp;#34;レース種類別CNAME&amp;#34;]}[Content]{0}[Column1],
    strPARA = Text.ToBinary(strCNAME),
    strHEAD = [#&amp;#34;Content-Type&amp;#34;=&amp;#34;application/x-www-form-urlencoded&amp;#34;],
    ソース = Web.Contents(strURL, [Headers = strHEAD, Content = strPARA]),
    コード変換後の文字列 = Text.FromBinary(ソース, 932),
    改行区切りの文字列 = Text.Split(コード変換後の文字列, &amp;#34;#(cr,lf)&amp;#34;)

in
    改行区切りの文字列&lt;/pre&gt;&lt;p&gt;&lt;hr&gt;&lt;br /&gt;
02馬連TABLEのソースを抜き出す&lt;/p&gt;&lt;p&gt;Text.Splitで&lt;table class= を条件に、まず分割する
List.Skipを使い１つ目のデータは必要ないので、スキップさせる
Text.BeforeDelimiter を使い&lt;/table&gt;まで整形、と、分割時に消えた&lt;/p&gt;
&lt;pre class=&quot;code m&quot; data-lang=&quot;m&quot; data-unlink&gt;let

    // JRAホームページからソースを取得する POST送信で結果を受け取る
    strURL = &amp;#34;https://www.jra.go.jp/JRADB/accessO.html&amp;#34;,
    // セルからパラメーターを受け取る strPARA = Text.ToBinary(&amp;#34;cname=pw15oli00/6D&amp;#34;),固定をやめるため
    strCNAME = &amp;#34;cname=&amp;#34; &amp;amp; Excel.CurrentWorkbook(){[Name=&amp;#34;レース種類別CNAME&amp;#34;]}[Content]{0}[Column1],
    strPARA = Text.ToBinary(strCNAME),
    strHEAD = [#&amp;#34;Content-Type&amp;#34;=&amp;#34;application/x-www-form-urlencoded&amp;#34;],

    ソース = Web.Contents(strURL, [Headers = strHEAD, Content = strPARA]),
    // 大きく、全体ソースをまず取得する
    HTML文字列 = Text.FromBinary(ソース, 932),


    // 全体ソースから、開始タグで分割してリストを作成する
    // class名&amp;#34;basic narrow-xy umaren&amp;#34;のテーブルを抜き出したい
    lstTABLEとクラスで分割 = Text.Split(HTML文字列, &amp;#34;&amp;lt;table class=&amp;#34;&amp;#34;basic narrow-xy umaren&amp;#34;&amp;#34;&amp;gt;&amp;#34;),

    // 上半分・いらない部分をスキップする最初の要素を飛ばす
    lstTABALのデータ = List.Skip(lstTABLEとクラスで分割, 1),

    // 終了タグ&amp;lt;/table&amp;gt;で区切り、分割処理で消えた開始TABLEタグを付け直す
    lstテーブルソースのリストを作成 = List.Transform(lstTABALのデータ, each 
        &amp;#34;&amp;lt;table class=&amp;#34;&amp;#34;basic narrow-xy umaren&amp;#34;&amp;#34;&amp;gt;&amp;#34; &amp;amp; Text.BeforeDelimiter(_, &amp;#34;&amp;lt;/table&amp;gt;&amp;#34;) &amp;amp; &amp;#34;&amp;lt;/table&amp;gt;&amp;#34;
    ),

in
    lstテーブルソースのリストを作成
&lt;/pre&gt;&lt;p&gt;&lt;hr&gt;&lt;/p&gt;&lt;p&gt;03単体固定テストでテーブルから値を取り出す&lt;/p&gt;
&lt;pre class=&quot;code m&quot; data-lang=&quot;m&quot; data-unlink&gt;let
    // 3.1 テストデータの定義 固定で2つのセルをコピーして使う
    lstテーブルテキストソース = { 
        &amp;#34;&amp;lt;table class=&amp;#34;&amp;#34;basic narrow-xy umaren&amp;#34;&amp;#34;&amp;gt;
          &amp;lt;caption&amp;gt;12&amp;lt;/caption&amp;gt;
          &amp;lt;tbody&amp;gt;
            &amp;lt;tr&amp;gt;
                &amp;lt;th scope=&amp;#34;&amp;#34;row&amp;#34;&amp;#34;&amp;gt;13&amp;lt;/th&amp;gt;
                &amp;lt;td&amp;gt;385.0&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;
            &amp;lt;tr&amp;gt;
                &amp;lt;th scope=&amp;#34;&amp;#34;row&amp;#34;&amp;#34;&amp;gt;14&amp;lt;/th&amp;gt;
                &amp;lt;td&amp;gt;237.6&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;
            &amp;lt;tr&amp;gt;
                &amp;lt;th scope=&amp;#34;&amp;#34;row&amp;#34;&amp;#34;&amp;gt;15&amp;lt;/th&amp;gt;
                &amp;lt;td&amp;gt;&amp;lt;strong class=&amp;#34;&amp;#34;red&amp;#34;&amp;#34;&amp;gt;14.9&amp;lt;/strong&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;
            &amp;lt;/tbody&amp;gt;
        &amp;lt;/table&amp;gt;&amp;#34;,
&amp;#34;&amp;lt;table class=&amp;#34;&amp;#34;basic narrow-xy umaren&amp;#34;&amp;#34;&amp;gt;
          &amp;lt;caption&amp;gt;13&amp;lt;/caption&amp;gt;
          &amp;lt;tbody&amp;gt;
            &amp;lt;tr&amp;gt;
                &amp;lt;th scope=&amp;#34;&amp;#34;row&amp;#34;&amp;#34;&amp;gt;14&amp;lt;/th&amp;gt;
                &amp;lt;td&amp;gt;1611.9&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;
            &amp;lt;tr&amp;gt;
                &amp;lt;th scope=&amp;#34;&amp;#34;row&amp;#34;&amp;#34;&amp;gt;15&amp;lt;/th&amp;gt;
                &amp;lt;td&amp;gt;164.5&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;
            &amp;lt;/tbody&amp;gt;
        &amp;lt;/table&amp;gt;&amp;#34;
    },

    // リスト全体をループしないで、まずは１つだけでテストする
    txtTEST = lstテーブルテキストソース{0},

    // 3.2 caption 馬番号の取得（captionはテーブル内で1項目なのでループ無しで直接取る）
    TBcaption = Html.Table(txtTEST, {
        {&amp;#34;馬番&amp;#34;, &amp;#34;caption&amp;#34;, each _[TextContent]}
    }),
    txt馬番 = TBcaption{0}[馬番],

    // 3.3 詳細（tr）行で処理する
    // 「each _」で要素そのものを一旦受け取る、[RowSelector=&amp;#34;tr&amp;#34;]指定でまず要素を取得する
    行TR単位で要素THTDをテーブルにする = Html.Table(txtTEST, {
        {&amp;#34;相手馬番&amp;#34;, &amp;#34;th&amp;#34;, each _},
        {&amp;#34;オッズ値&amp;#34;, &amp;#34;td&amp;#34;, each _}
    }, [RowSelector=&amp;#34;tr&amp;#34;]),

    // 3.4 次に要素から「TextContent」を抽出する
    // 「Function」がわからなかったので、2段階処理にしました、違う書き方がわかる人は教えてください
    THとTDのテーブル = Table.TransformColumns(行TR単位で要素THTDをテーブルにする, {
        {&amp;#34;相手馬番&amp;#34;, each _[TextContent]},
        {&amp;#34;オッズ値&amp;#34;, each _[TextContent]}
    }),

    // 3.5 基準の馬番を追加 すると列追加なので、列の順番を最後に変更する
    馬番追加後のテーブル = Table.AddColumn(THとTDのテーブル, &amp;#34;馬番&amp;#34;, each txt馬番, type text),
    馬連オッズのテーブル = Table.ReorderColumns(馬番追加後のテーブル, {&amp;#34;馬番&amp;#34;, &amp;#34;相手馬番&amp;#34;, &amp;#34;オッズ値&amp;#34;})
in
    馬連オッズのテーブル&lt;/pre&gt;&lt;p&gt;&lt;hr&gt;&lt;/p&gt;&lt;p&gt;04複数テーブルを変換して馬連オッズを作成する&lt;/p&gt;
&lt;pre class=&quot;code m&quot; data-lang=&quot;m&quot; data-unlink&gt;let

    // JRAホームページからソースを取得する POST送信で結果を受け取る
    strURL = &amp;#34;https://www.jra.go.jp/JRADB/accessO.html&amp;#34;,
    // セルからパラメーターを受け取る strPARA = Text.ToBinary(&amp;#34;cname=pw15oli00/6D&amp;#34;),固定をやめるため
    strCNAME = &amp;#34;cname=&amp;#34; &amp;amp; Excel.CurrentWorkbook(){[Name=&amp;#34;レース種類別CNAME&amp;#34;]}[Content]{0}[Column1],
    strPARA = Text.ToBinary(strCNAME),
    strHEAD = [#&amp;#34;Content-Type&amp;#34;=&amp;#34;application/x-www-form-urlencoded&amp;#34;],

    ソース = Web.Contents(strURL, [Headers = strHEAD, Content = strPARA]),
    // 大きく、全体ソースをまず取得する
    HTML文字列 = Text.FromBinary(ソース, 932),

    // 4.1 馬連オッズのページから、TABLEタグのHTMLソースを抜き出す
    // 全体ソースから、開始タグで分割してリストを作成する
    // class名&amp;#34;basic narrow-xy umaren&amp;#34;のテーブルを抜き出したい
    lstTABLEとクラスで分割 = Text.Split(HTML文字列, &amp;#34;&amp;lt;table class=&amp;#34;&amp;#34;basic narrow-xy umaren&amp;#34;&amp;#34;&amp;gt;&amp;#34;),

    // 上半分・いらない部分をスキップする最初の要素を飛ばす
    lstTABALのデータ = List.Skip(lstTABLEとクラスで分割, 1),

    // 終了タグ&amp;lt;/table&amp;gt;で区切り、分割処理で消えた開始TABLEタグを付け直す
    lstテーブルソースのリストを作成 = List.Transform(lstTABALのデータ, each 
        &amp;#34;&amp;lt;table class=&amp;#34;&amp;#34;basic narrow-xy umaren&amp;#34;&amp;#34;&amp;gt;&amp;#34; &amp;amp; Text.BeforeDelimiter(_, &amp;#34;&amp;lt;/table&amp;gt;&amp;#34;) &amp;amp; &amp;#34;&amp;lt;/table&amp;gt;&amp;#34;
    ),

    // 4.2 上記HTMLソースの各要素に対して、ループで回し、複数テーブルを取得する
    各馬連オッズのテーブル = List.Transform(lstテーブルソースのリストを作成, (txtHTMLTABLEソース) =&amp;gt;
        let
            // 3.2 caption 馬番号の取得（captionはテーブル内で1項目なのでループ無しで直接取る）
            TBcaption = Html.Table(txtHTMLTABLEソース, {
                {&amp;#34;馬番&amp;#34;, &amp;#34;caption&amp;#34;, each _[TextContent]}
            }),
            txt馬番 = TBcaption{0}[馬番],

            // 3.3 詳細（tr）行で処理する
            // 「each _」で要素そのものを一旦受け取る、[RowSelector=&amp;#34;tr&amp;#34;]指定でまず要素を取得する
            行TR単位で要素THTDをテーブルにする = Html.Table(txtHTMLTABLEソース, {
                {&amp;#34;相手馬番&amp;#34;, &amp;#34;th&amp;#34;, each _},
                {&amp;#34;オッズ値&amp;#34;, &amp;#34;td&amp;#34;, each _}
            }, [RowSelector=&amp;#34;tr&amp;#34;]),

            // 3.4 次に要素から「TextContent」を抽出する
            // 「Function」がわからなかったので、2段階処理にしました、違う書き方がわかる人は教えてください
            THとTDのテーブル = Table.TransformColumns(行TR単位で要素THTDをテーブルにする, {
                {&amp;#34;相手馬番&amp;#34;, each _[TextContent]},
                {&amp;#34;オッズ値&amp;#34;, each _[TextContent]}
            }),

            // 3.5 基準の馬番を追加 すると列追加なので、列の順番を最後に変更する
            馬番追加後のテーブル = Table.AddColumn(THとTDのテーブル, &amp;#34;馬番&amp;#34;, each txt馬番, type text),
            馬連オッズのテーブル = Table.ReorderColumns(馬番追加後のテーブル, {&amp;#34;馬番&amp;#34;, &amp;#34;相手馬番&amp;#34;, &amp;#34;オッズ値&amp;#34;})
        in
            馬連オッズのテーブル
    ),

    // 4.3 テーブルを結合する
    馬連オッズTBをまとめる = Table.Combine(各馬連オッズのテーブル),

    // 4.4 型の変換
    馬連オッズ完成テーブル = Table.TransformColumnTypes(馬連オッズTBをまとめる, {
        {&amp;#34;馬番&amp;#34;, Int64.Type},
        {&amp;#34;相手馬番&amp;#34;, Int64.Type},
        {&amp;#34;オッズ値&amp;#34;, type number}
    })
in
    馬連オッズ完成テーブル&lt;/pre&gt;&lt;p&gt;5.蛇足とおまけの解説、なぜ？こんな面倒な取得を行ったか？&lt;/p&gt;&lt;p&gt;パワークエリーを使用しているんだから、&lt;br /&gt;
自分でコードを書かないで、&lt;br /&gt;
メニュー操作で、できるのでは？&lt;/p&gt;&lt;p&gt;と&lt;br /&gt;
私も思ってました。&lt;/p&gt;&lt;p&gt;私の勘違いかもしれないのですが、&lt;br /&gt;
POST送信で取り込んだWeb.Pageからの操作だと、&lt;br /&gt;
最後の馬連オッズが取得できなかったです&lt;/p&gt;&lt;p&gt;気になるので、再テストしてみます&lt;/p&gt;&lt;p&gt;馬連オッズを読み込んで、&lt;br /&gt;
テーブルを展開してみると、&lt;/p&gt;&lt;p&gt;こんな感じで、うまく行きませんでした。&lt;/p&gt;&lt;p&gt;メニュー操作や、展開の使い方がわるいのか？&lt;br /&gt;
もし、&lt;br /&gt;
何か知っている人が居たら、コメント欄で教えてください&lt;/p&gt;&lt;p&gt;また、&lt;br /&gt;
馬単は、&lt;br /&gt;
同じ操作の展開でうまく行きます(おいおい)&lt;/p&gt;&lt;p&gt;6.おわりの挨拶、&lt;/p&gt;&lt;p&gt;最後に謎を残しつつ、&lt;br /&gt;
今回も中途半端で失礼します。&lt;/p&gt;&lt;p&gt;詳細のテスト解説をまたやると思うので、よろしくお願いします。&lt;/p&gt;&lt;p&gt;※ファイルなど、まとめたら、ダウンロードできる形でお知らせします。&lt;/p&gt;&lt;p&gt;&lt;hr&gt;&lt;/p&gt;&lt;p&gt;YouTubeページの紹介	&lt;br /&gt;
	&lt;br /&gt;
他のサンプルですが、設置方法の解説は、&lt;br /&gt;
【Excel】JRAオッズを自動取得！Power Queryでパワークエリーを0から設置する テスト環境作成の完全ガイド&lt;br /&gt;
&lt;a href=&quot;https://www.youtube.com/watch?v=LgeRCGZRxNQ&quot;&gt;https://www.youtube.com/watch?v=LgeRCGZRxNQ&lt;/a&gt;&lt;br /&gt;
↑を見てください。&lt;br /&gt;
	&lt;br /&gt;
関連動画:&lt;br /&gt;
過去の関連動画は、下記の再生リストから&lt;br /&gt;
&lt;a href=&quot;https://www.youtube.com/playlist?list=PLBFC80A8658C305CE&quot;&gt;https://www.youtube.com/playlist?list=PLBFC80A8658C305CE&lt;/a&gt;&lt;br /&gt;
↑未解決や単体テストの動画が多いのですが、拾い読みてください。&lt;br /&gt;
	&lt;br /&gt;
JavaScriptのdoActionリンク処理 POST送信については&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ア.doActionでCNAME(パラメーター)を送り結果を取得する方法をパワークエリーで実現する&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;a href=&quot;https://youtube.com/live/ntj8o1D_Jrk&quot;&gt;https://youtube.com/live/ntj8o1D_Jrk&lt;/a&gt;&lt;br /&gt;
↑POST送信のページをパワークエリーで取得する方法&lt;br /&gt;
	&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;イ.3連単など違うパターンでPOST送信されている場合&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;a href=&quot;https://youtube.com/live/wBzgPrrjqUU&quot;&gt;https://youtube.com/live/wBzgPrrjqUU&lt;/a&gt;&lt;br /&gt;
↑パラメーターの数が３つになった時の処理例&lt;/p&gt;
&lt;figure class=&quot;figure-image figure-image-fotolife&quot; title=&quot;2026/04/05 ライブ実行時のサムネイル&quot;&gt;&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260406/20260406115754.png&quot; width=&quot;1200&quot; height=&quot;670&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;figcaption&gt;2026/04/05 ライブ実行時のサムネイル&lt;/figcaption&gt;&lt;/figure&gt;</content>        
        <category term="Excel" label="Excel" />
        
        <link rel="enclosure" href="https://cdn.image.st-hatena.com/image/scale/8011add59496b0c531b463e6075b7a5923624af7/backend=imagemagick;version=1;width=1300/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fk%2Fken3memo%2F20260406%2F20260406115754.png" type="image/png" length="0" />

        <author>
            <name>ken3memo</name>
        </author>
    </entry>
    
  
    
    
    <entry>
        <title>いつもの早とちり 知恵袋の質問でVrewの7月サービス終了を見て焦るオジサン</title>
        <link href="https://ken3memo.hatenablog.com/entry/2026/04/01/000000"/>
        <id>hatenablog://entry/17179246901371418926</id>
        <published>2026-04-01T00:00:00+09:00</published>
        <updated>2026-04-01T00:00:03+09:00</updated>        <summary type="html">知恵袋の質問でVrewのサービス終了を見て焦るオジサン下記、質問を見て、 https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12326744347 detail.chiebukuro.yahoo.co.jp びっくりしたぁ、Vrew モバイルサービス終了のお知らせ https://vrew-help.notion.site/Vrew-2c4c552a746e80d9a7d1dee1cd44f6b1 vrew-help.notion.siteあっ、 モバイルサービスの終了かぁ。PC版は、大丈夫なんだよなぁ・・・・ 補足情報 Goo…</summary>
        <content type="html">&lt;p&gt;知恵袋の質問でVrewのサービス終了を見て焦るオジサン&lt;/p&gt;&lt;p&gt;下記、質問を見て、&lt;br /&gt;
&lt;a href=&quot;https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12326744347&quot;&gt;https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12326744347&lt;/a&gt;&lt;br /&gt;
&lt;iframe src=&quot;https://hatenablog-parts.com/embed?url=https%3A%2F%2Fdetail.chiebukuro.yahoo.co.jp%2Fqa%2Fquestion_detail%2Fq12326744347&quot; title=&quot;Vrewという編集アプリを愛用しているのですが7月にサ終してしまうと知り大至急代わりになるようなアプリを探しております。 - 私は動画... - Yahoo!知恵袋&quot; class=&quot;embed-card embed-webcard&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;&quot; loading=&quot;lazy&quot;&gt;&lt;/iframe&gt;&lt;cite class=&quot;hatena-citation&quot;&gt;&lt;a href=&quot;https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12326744347&quot;&gt;detail.chiebukuro.yahoo.co.jp&lt;/a&gt;&lt;/cite&gt;&lt;br /&gt;
びっくりしたぁ、&lt;/p&gt;&lt;p&gt;Vrew モバイルサービス終了のお知らせ&lt;br /&gt;
&lt;a href=&quot;https://vrew-help.notion.site/Vrew-2c4c552a746e80d9a7d1dee1cd44f6b1&quot;&gt;https://vrew-help.notion.site/Vrew-2c4c552a746e80d9a7d1dee1cd44f6b1&lt;/a&gt;&lt;br /&gt;
&lt;iframe src=&quot;https://hatenablog-parts.com/embed?url=https%3A%2F%2Fvrew-help.notion.site%2FVrew-2c4c552a746e80d9a7d1dee1cd44f6b1&quot; title=&quot;Vrew モバイルサービス終了のお知らせ | Notion&quot; class=&quot;embed-card embed-webcard&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;&quot; loading=&quot;lazy&quot;&gt;&lt;/iframe&gt;&lt;cite class=&quot;hatena-citation&quot;&gt;&lt;a href=&quot;https://vrew-help.notion.site/Vrew-2c4c552a746e80d9a7d1dee1cd44f6b1&quot;&gt;vrew-help.notion.site&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;&lt;p&gt;あっ、&lt;br /&gt;
モバイルサービスの終了かぁ。&lt;/p&gt;&lt;p&gt;&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260331/20260331225353.png&quot; width=&quot;1200&quot; height=&quot;655&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;PC版は、大丈夫なんだよなぁ・・・・&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;ul&gt;
&lt;li&gt;補足情報&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;Google Play: Vrew ブリュー&lt;br /&gt;
&lt;a href=&quot;https://play.google.com/store/apps/details?id=com.voyagerx.vrew.android&amp;hl=ja&quot;&gt;https://play.google.com/store/apps/details?id=com.voyagerx.vrew.android&amp;hl=ja&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260331/20260331224726.jpg&quot; width=&quot;833&quot; height=&quot;495&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;/p&gt;
</content>        
        <category term="雑談" label="雑談" />
        
        <link rel="enclosure" href="https://cdn.image.st-hatena.com/image/scale/f554500a3bd0da77a963ccb01064bce3c75d9579/backend=imagemagick;version=1;width=1300/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fk%2Fken3memo%2F20260331%2F20260331225353.png" type="image/png" length="0" />

        <author>
            <name>ken3memo</name>
        </author>
    </entry>
    
  
    
    
    <entry>
        <title>Vrew3.7.X の情報が無い・・と騒いでいたら、Youtubeのページ教えてもらいました</title>
        <link href="https://ken3memo.hatenablog.com/entry/2026/03/26/140000"/>
        <id>hatenablog://entry/17179246901369299322</id>
        <published>2026-03-26T14:00:00+09:00</published>
        <updated>2026-03-26T14:00:00+09:00</updated>        <summary type="html">Vrew3.7.X の情報が無い・・と騒いでいたら、Youtubeのページ教えてもらいましたVrew3.7の情報、コメントで教えてもらいました https://www.youtube.com/@vrew/streams ↑ ココに載っているみたいですこのページの配信予定(4/1)を見ると Vrew3.8がリリースされるみたいですね 2026/03/26 スクショ撮影 4/1にVrew3.8.0の紹介ライブ？2026/03/26 スクショ撮影 4/1にVrew3.8.0の紹介ライブ？Ver3.8.0が4/1にリリース予定？ 機能紹介？コメントで、情報、ありがとう 日本語・自動翻訳でYouTube…</summary>
        <content type="html">&lt;p&gt;Vrew3.7.X の情報が無い・・と騒いでいたら、Youtubeのページ教えてもらいました&lt;/p&gt;&lt;p&gt;Vrew3.7の情報、コメントで教えてもらいました&lt;br /&gt;
&lt;a href=&quot;https://www.youtube.com/@vrew/streams&quot;&gt;https://www.youtube.com/@vrew/streams&lt;/a&gt;&lt;br /&gt;
↑&lt;br /&gt;
ココに載っているみたいです&lt;/p&gt;&lt;p&gt;このページの配信予定(4/1)を見ると&lt;br /&gt;
&lt;strong&gt;Vrew3.8がリリース&lt;/strong&gt;されるみたいですね&lt;/p&gt;
&lt;figure class=&quot;figure-image figure-image-fotolife&quot; title=&quot;2026/03/26 スクショ撮影 4/1にVrew3.8.0の紹介ライブ？&quot;&gt;&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260326/20260326123541.jpg&quot; width=&quot;907&quot; height=&quot;620&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;figcaption&gt;2026/03/26 スクショ撮影 4/1にVrew3.8.0の紹介ライブ？&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;2026/03/26 スクショ撮影 4/1にVrew3.8.0の紹介ライブ？&lt;/p&gt;&lt;p&gt;Ver3.8.0が4/1にリリース予定？&lt;br /&gt;
機能紹介？&lt;/p&gt;&lt;p&gt;&lt;strong&gt;コメントで、情報、ありがとう&lt;/strong&gt;&lt;br /&gt;
日本語・自動翻訳でYouTubeのページを見てみます。&lt;/p&gt;
</content>        
        <category term="雑談" label="雑談" />
        
        <link rel="enclosure" href="https://cdn.image.st-hatena.com/image/scale/709378f03184f01ec8d358cb78218e20cf706792/backend=imagemagick;version=1;width=1300/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fk%2Fken3memo%2F20260326%2F20260326123541.jpg" type="image/jpeg" length="0" />

        <author>
            <name>ken3memo</name>
        </author>
    </entry>
    
  
    
    
    <entry>
        <title>2026/03/25 「みなさんに良いことがありますように」</title>
        <link href="https://ken3memo.hatenablog.com/entry/2026/03/25/200000"/>
        <id>hatenablog://entry/17179246901369049932</id>
        <published>2026-03-25T20:00:00+09:00</published>
        <updated>2026-03-25T20:00:03+09:00</updated>        <summary type="html">「みなさんに良いことがありますように」 「そして、その一部でもまわりまわって私に来るといいなぁ」 いつものAIで生成した画像を添付する下記、GeminiからNanoBanana2へ渡したプロンプト 1:1 正方形の比率でイラストをデザインしてください 左上に大きくラベル・リボンで 「2026年03月25日」 と日付をラベル・リボンで左上にデザインしてください 太った眼鏡をかけた男性が願っている様子・つぶやいている様子 「みなさんに良いことがありますように」 「そして、その一部でもまわりまわって私に来るといいなぁ」 上記2つのつぶやきを日本語で視認しやすく、大きくデザインしてください 上記イラス…</summary>
        <content type="html">&lt;p&gt;「みなさんに良いことがありますように」&lt;br /&gt;
「そして、その一部でもまわりまわって私に来るといいなぁ」&lt;/p&gt;
&lt;figure class=&quot;figure-image figure-image-fotolife&quot; title=&quot;いつものAIで生成した画像を添付する&quot;&gt;&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260325/20260325181712.png&quot; width=&quot;1200&quot; height=&quot;1200&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;figcaption&gt;いつものAIで生成した画像を添付する&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;下記、GeminiからNanoBanana2へ渡したプロンプト&lt;/p&gt;
&lt;pre class=&quot;code text&quot; data-lang=&quot;text&quot; data-unlink&gt;1:1 正方形の比率でイラストをデザインしてください

左上に大きくラベル・リボンで
「2026年03月25日」 と日付をラベル・リボンで左上にデザインしてください

太った眼鏡をかけた男性が願っている様子・つぶやいている様子

「みなさんに良いことがありますように」
「そして、その一部でもまわりまわって私に来るといいなぁ」
上記2つのつぶやきを日本語で視認しやすく、大きくデザインしてください

上記イラストをデザインして描画してください&lt;/pre&gt;&lt;p&gt;画像生成の参考となれば幸いです。&lt;/p&gt;
</content>        
        <link rel="enclosure" href="https://cdn.image.st-hatena.com/image/scale/631abb63724719dabe7c83dac27d4c6ad2acda7c/backend=imagemagick;version=1;width=1300/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fk%2Fken3memo%2F20260325%2F20260325181712.png" type="image/png" length="0" />

        <author>
            <name>ken3memo</name>
        </author>
    </entry>
    
  
    
    
    <entry>
        <title>3D isometric icon AI画像生成プロンプト例　</title>
        <link href="https://ken3memo.hatenablog.com/entry/2026/03/18/103543"/>
        <id>hatenablog://entry/17179246901366129293</id>
        <published>2026-03-18T10:35:43+09:00</published>
        <updated>2026-03-18T10:35:43+09:00</updated>        <summary type="html">3D isometric iconプロンプト例: 比率1:1の正方形 中年の男性がパソコンを操作している姿を3D isometric icon, soft matte plastic texture, pastel color palette, rounded edges, C4D style, Octane Render.で、デザインして描いて と指示をしてみたNanoBanana2: GeminiからNanoBanana2を使用した例 NanoBananaPRO: GeminiからNanoBanana PROを使用した例画像作りの参考となれば幸いです</summary>
        <content type="html">&lt;p&gt;3D isometric icon&lt;/p&gt;&lt;p&gt;プロンプト例: &lt;/p&gt;

    &lt;blockquote&gt;
        &lt;p&gt;比率1:1の正方形&lt;br /&gt;
中年の男性がパソコンを操作している姿を&lt;/p&gt;&lt;p&gt;3D isometric icon, soft matte plastic texture, pastel color palette, rounded edges, C4D style, Octane Render.&lt;/p&gt;&lt;p&gt;で、デザインして描いて&lt;/p&gt;

    &lt;/blockquote&gt;
&lt;p&gt;と指示をしてみた&lt;/p&gt;&lt;p&gt;NanoBanana2:&lt;/p&gt;
&lt;figure class=&quot;figure-image figure-image-fotolife&quot; title=&quot;GeminiからNanoBanana2を使用した例&quot;&gt;&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260318/20260318103241.png&quot; width=&quot;1200&quot; height=&quot;1200&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;figcaption&gt;GeminiからNanoBanana2を使用した例&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;br /&gt;
NanoBananaPRO:&lt;/p&gt;
&lt;figure class=&quot;figure-image figure-image-fotolife&quot; title=&quot;GeminiからNanoBanana PROを使用した例&quot;&gt;&lt;span itemscope itemtype=&quot;http://schema.org/Photograph&quot;&gt;&lt;img src=&quot;https://cdn-ak.f.st-hatena.com/images/fotolife/k/ken3memo/20260318/20260318103339.png&quot; width=&quot;1200&quot; height=&quot;1200&quot; loading=&quot;lazy&quot; title=&quot;&quot; class=&quot;hatena-fotolife&quot; itemprop=&quot;image&quot;&gt;&lt;/span&gt;&lt;figcaption&gt;GeminiからNanoBanana PROを使用した例&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;hr&gt;&lt;/p&gt;&lt;p&gt;画像作りの参考となれば幸いです&lt;/p&gt;
</content>        
        <link rel="enclosure" href="https://cdn.image.st-hatena.com/image/scale/e786f9625370e727a178481b21ca175bd6d0c781/backend=imagemagick;version=1;width=1300/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fk%2Fken3memo%2F20260318%2F20260318103241.png" type="image/png" length="0" />

        <author>
            <name>ken3memo</name>
        </author>
    </entry>
    
  
</feed>
