<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:blogChannel="http://backend.userland.com/blogChannelModule" >
  <channel>
  <title>いけいけ理系NEO</title>
  <link>https://rikeineo.blog.shinobi.jp/</link>
  <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="https://rikeineo.blog.shinobi.jp/RSS/" />
  <description>バイオインフォマティックス技術者試験、情報処理試験など、IT系の試験を基礎から勉強します。また、Javaなどプログラミングを勉強します。</description>
  <lastBuildDate>Fri, 22 May 2026 21:49:47 GMT</lastBuildDate>
  <language>ja</language>
  <copyright>© Ninja Tools Inc.</copyright>
  <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" />

    <item>
    <title>【Officeスクリプト】VBAやGASとは何が違う？メリットと賢い使い分けを徹底比較！</title>
    <description>
    <![CDATA[<p>Excelの業務効率化といえば「VBA（マクロ）」がおなじみですが、最近Excelの画面に<b>「自動化」タブ</b>という新しいボタンが登場したのをご存知でしょうか？</p>
<p>これは<b>「Officeスクリプト」</b>という、Microsoftが提供する次世代の自動化機能です。「これまでのVBAと何が違うの？」「GoogleスプレッドシートのGASと同じなの？」という疑問を、メリットや比較と合わせて分かりやすく解説します！</p>
<h3 style="color: blue; border-left: 5px solid blue; padding-left: 10px;">0. 結論：VBAとOfficeスクリプトの違い</h3>
<p>まずは、VBAとOfficeスクリプトの主な違いを一覧表で見てみましょう。</p>
<table style="width: 100%; border-collapse: collapse; margin: 15px 0; font-size: 14px;">
<thead>
<tr style="background-color: #f2f2f2; border-bottom: 2px solid #ddd;"><th style="padding: 8px; text-align: left; border: 1px solid #ddd;">比較項目</th><th style="padding: 8px; text-align: left; border: 1px solid #ddd;">従来のExcel VBA</th><th style="padding: 8px; text-align: left; border: 1px solid #ddd;">新しいOfficeスクリプト</th></tr>
</thead>
<tbody>
<tr>
<td style="padding: 8px; border: 1px solid #ddd;"><b>プログラミング言語</b></td>
<td style="padding: 8px; border: 1px solid #ddd;">VBA（Visual Basic for Applications）</td>
<td style="padding: 8px; border: 1px solid #ddd;">TypeScript（JavaScriptベース）</td>
</tr>
<tr>
<td style="padding: 8px; border: 1px solid #ddd;"><b>動く場所（環境）</b></td>
<td style="padding: 8px; border: 1px solid #ddd;">パソコン（デスクトップ版Excelのみ）</td>
<td style="padding: 8px; border: 1px solid #ddd;">クラウド ＆ パソコン（Web版・スマホ版・デスクトップ版）</td>
</tr>
<tr>
<td style="padding: 8px; border: 1px solid #ddd;"><b>ファイルの形式</b></td>
<td style="padding: 8px; border: 1px solid #ddd;">マクロ有効ブック（.xlsmなど）が必要</td>
<td style="padding: 8px; border: 1px solid #ddd;">通常のブック（.xlsx）のままでOK（※スクリプトはクラウドに保存）</td>
</tr>
<tr>
<td style="padding: 8px; border: 1px solid #ddd;"><b>他のアプリとの連携</b></td>
<td style="padding: 8px; border: 1px solid #ddd;">PC内の操作や外部ファイル連携が得意</td>
<td style="padding: 8px; border: 1px solid #ddd;">TeamsやOutlook、Power Automate等との連携が超得意</td>
</tr>
</tbody>
</table>
<h3 style="color: blue; border-left: 5px solid blue; padding-left: 10px;">1. ちなみに、Googleスプレッドシートの「GAS」とは同じもの？</h3>
<p>Googleスプレッドシートを自動化する「Google Apps Script（GAS）」を知っている方なら、<b>「OfficeスクリプトとGASって考え方は同じなの？」</b>と思うかもしれません。</p>
<p>結論から言うと、<b>根本的な考え方や仕組みは「ほぼ同じ」</b>です！</p>
<ul>
<li><b>兄弟のような関係のプログラミング言語</b> <br />
GASは「JavaScript」、OfficeスクリプトはJavaScriptを発展させた「TypeScript」という言語を使います。基本的な文法（<code>for</code>文によるループや<code>if</code>文による条件分岐など）は全く同じなので、片方を覚えればもう片方もすぐに理解できます。</li>
<li style="margin-top: 10px;"><b>クラウドで動くマクロという共通点</b> <br />
どちらもプログラムコードはパソコン内ではなくクラウド上に保存され、サーバー側で実行されます。そのため、ファイルを開いていなくても外部から自動実行できる仕組み（OfficeスクリプトならPower Automate、GASならトリガー設定）を持っている点もそっくりです。</li>
</ul>
<p>まさに、<b>「GoogleのGASに対抗して、Microsoftが満を持して作ったExcel版のGAS」</b>がOfficeスクリプトだとイメージすると非常に分かりやすいです！</p>
<h3 style="color: blue; border-left: 5px solid blue; padding-left: 10px;">2. Officeスクリプトの「3つの大きなメリット」</h3>
<p>VBAと比べたとき、Officeスクリプトには実務をガラリと変える強力なメリットが3つあります。</p>
<h4>① クラウド（Web版Excel）やスマホでも動く！</h4>
<p>VBAはパソコンにインストールされたExcelでしか動きませんでしたが、OfficeスクリプトはWebブラウザ上で開く「Web版Excel」でも、スマホのExcelアプリでも実行できます。Mac環境でもWindowsと全く同じように動作するのも嬉しいポイントです。</p>
<h4>② ファイルの拡張子を「.xlsm」に変えなくていい！</h4>
<p>VBAを使う時は、ファイルを「マクロ有効ブック（.xlsm）」という特殊な形式で保存する必要があり、セキュリティの観点から社内で嫌がられることもありました。Officeスクリプトは、プログラムコードがファイルの中ではなく「使う人のクラウド（OneDrive等）」に保存されるため、通常の<b>「.xlsx」ファイルのままで自動化が可能</b>です。</p>
<h4>③ Power Automateと連携して「全自動化」ができる！</h4>
<p>これが最大の強みです。Microsoftの自動化ツール「Power Automate」と組み合わせることで、「毎日朝9時に、指定のExcelのスクリプトを実行してデータを集計し、結果をTeamsやOutlookで自動送信する」といった、<b>Excelを開くことすらしない完全自動化</b>が簡単に作れます。</p>
<h3 style="color: blue; border-left: 5px solid blue; padding-left: 10px;">3. 実務での賢い使い分けルート</h3>
<p>「じゃあ、全部Officeスクリプトにすればいいの？」というと、実はそうではありません。それぞれの「得意分野」に合わせて、以下のように使い分けるのがベストです。</p>
<ul>
<li><b>Officeスクリプトが向いているケース</b> <br />
・Web版のExcel（Teams上のExcelなど）で共同編集しながらマクロを動かしたい時 <br />
・定期的な集計をPower Automateで夜間に勝手に終わらせたい時 <br />
・セキュリティの関係でマクロ有効ブック（.xlsm）が使えない職場環境の時</li>
<li style="margin-top: 10px;"><b>VBAが向いているケース</b> <br />
・「パソコン内の特定のフォルダにある複数のファイルを読み込む」ようなローカルPC内の操作をしたい時 <br />
・ユーザーフォーム（オリジナルの入力画面）をカチッと作り込みたい時 <br />
・長年蓄積された社内の巨大なVBA資産をそのまま活かしたい時</li>
</ul>
<h3 style="color: blue; border-left: 5px solid blue; padding-left: 10px;">ワンポイント・アドバイス</h3>
<p><b>これから学ぶならどっち？</b> <br />
もしあなたが「これからプログラミングを学んで、クラウド時代の自動化をマスターしたい！」と考えているなら、<b>Officeスクリプトが断然おすすめ</b>です。 <br />
OfficeスクリプトのベースであるTypeScript（JavaScript）は、Web開発の世界で世界中の一流エンジニアが使っている超メジャーな言語。ここで身につけた文法や知識は、Excelの中だけでなく、GASを使ったGoogleアプリの自動化、さらにはWebアプリ開発など、他の幅広いITスキルにそのまま直結します。 <br />
歴史あるVBAの強みを活かしつつ、新しいOfficeスクリプトの武器を手に入れて、一歩先の自動化スキルを目指してみませんか？<br />
<br />
<br />
<br />
</p>]]>
    </description>
    <category>【演習】Officeスクリプト</category>
    <link>https://rikeineo.blog.shinobi.jp/Entry/2131/</link>
    <pubDate>Fri, 22 May 2026 21:49:47 GMT</pubDate>
    <guid isPermaLink="false">rikeineo.blog.shinobi.jp://entry/2131</guid>
  </item>
    <item>
    <title>【Officeスクリプト入門】データの入れ物「変数」の基本と型（データ型）をマスターしよう</title>
    <description>
    <![CDATA[<p>Officeスクリプトで一歩進んだ自動化を行うために欠かせないのが<b>「変数（へんすう）」</b>です。今回は、変数の作り方や、データの種類を表す「型」について、分かりやすく解説します。</p>
<h3 style="color: blue; border-left: 5px solid blue; padding-left: 10px;">0. 文法：変数の宣言には「let」を使う</h3>
<p>プログラムの中でデータを一時的に保存しておく箱のことを「変数」と呼びます。Officeスクリプトで変数を作る（宣言する）ときは、<b><code>let</code></b> というキーワードを使い、その後ろに好きな「変数名」を書きます。</p>
<p>また、Officeスクリプト（TypeScript）は、箱に入れるデータの種類（数値、文字など）を意識するルール（型システム）を持っています。</p>
<h3 style="color: blue; border-left: 5px solid blue; padding-left: 10px;">1. 実践サンプル</h3>
<p>まずは、エディタに以下のコードを貼り付けて動かしてみましょう。変数 <code>x</code> を作って、初期値として <code>10</code> を入れ、それを画面に出力するシンプルなコードです。</p>
<div style="background-color: #f8f9fa; color: #333; padding: 15px; border-radius: 8px; font-family: monospace; font-size: 14px; line-height: 1.5; border: 1px solid #dee2e6; margin: 15px 0; overflow-x: auto;"><span style="color: #0033cc; font-weight: bold;">function</span> <span style="color: #880000;">main</span>(workbook: <span style="color: #660099;">ExcelScript.Workbook</span>) {<br />
&nbsp;&nbsp;<span style="color: #008800; font-style: italic;">// 変数xを宣言して、初期値10を代入する</span><br />
&nbsp;&nbsp;<span style="color: #0033cc; font-weight: bold;">let</span> x = <span style="color: #118888;">10</span>;<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;<span style="color: #008800; font-style: italic;">// 文字列と変数を「+」でつないで出力する</span><br />
&nbsp;&nbsp;<span style="color: #333;">console</span>.<span style="color: #880000;">log</span>(<span style="color: #cc0000;">"xの値："</span> + x);<br />
}</div>
<h3 style="color: blue; border-left: 5px solid blue; padding-left: 10px;">2. 実行結果</h3>
<p>スクリプトエディタの右上にある実行ボタン（よこむきさんかく ▶）を押すと、画面下部の「出力」タブに以下のように表示されます。</p>
<div style="background-color: #eee; padding: 10px; border-radius: 5px; font-family: monospace;">&nbsp;&nbsp;xの値：10</div>
<h3 style="color: blue; border-left: 5px solid blue; padding-left: 10px;">ワンポイント・アドバイス</h3>
<p><b>Officeスクリプトの「型（かた）」ってなに？</b><br />
今回のコードでは <code>let x = 10;</code> と書きました。このとき、Officeスクリプトは「右側が10（数字）だから、xは<b>数値を入れる箱（number型）</b>だな」と自動的に解釈してくれます。これを『型推論（かたすいろん）』と呼びます。</p>
<p>Officeスクリプトでよく使う代表的な型には、以下のようなものがあります。</p>
<table style="width: 100%; border-collapse: collapse; margin: 15px 0; font-size: 14px;">
<thead>
<tr style="background-color: #f2f2f2; border-bottom: 2px solid #ddd;"><th style="padding: 8px; text-align: left; border: 1px solid #ddd;">型の名前</th><th style="padding: 8px; text-align: left; border: 1px solid #ddd;">中身の種類</th><th style="padding: 8px; text-align: left; border: 1px solid #ddd;">具体例</th></tr>
</thead>
<tbody>
<tr>
<td style="padding: 8px; border: 1px solid #ddd;"><code>number</code>（数値型）</td>
<td style="padding: 8px; border: 1px solid #ddd;">整数や小数。計算に使う数字です。</td>
<td style="padding: 8px; border: 1px solid #ddd;"><code>10</code> や <code>3.14</code></td>
</tr>
<tr>
<td style="padding: 8px; border: 1px solid #ddd;"><code>string</code>（文字列型）</td>
<td style="padding: 8px; border: 1px solid #ddd;">文字のデータ。ダブルクォーテーションで囲みます。</td>
<td style="padding: 8px; border: 1px solid #ddd;"><code>"hello"</code> や <code>"xの値："</code></td>
</tr>
<tr>
<td style="padding: 8px; border: 1px solid #ddd;"><code>boolean</code>（論理値型）</td>
<td style="padding: 8px; border: 1px solid #ddd;">正しいか、間違っているかを表す2択のデータ。</td>
<td style="padding: 8px; border: 1px solid #ddd;"><code>true</code>（真） または <code>false</code>（偽）</td>
</tr>
</tbody>
</table>
<p>もし、明示的に型を指定して変数を作りたいときは、<code>let x: number = 10;</code> のように、変数名の後ろに <b><code>: 型名</code></b> をつける書き方もできます。型をしっかり決めておくことで、間違えて数値の箱に文字を入れてしまうようなバグを防いでくれるのが、VBAにはないOfficeスクリプト（TypeScript）の強みなんですよ！<br />
<br />
<br />
</p>]]>
    </description>
    <category>【演習】Officeスクリプト</category>
    <link>https://rikeineo.blog.shinobi.jp/Entry/2130/</link>
    <pubDate>Fri, 22 May 2026 21:40:51 GMT</pubDate>
    <guid isPermaLink="false">rikeineo.blog.shinobi.jp://entry/2130</guid>
  </item>
    <item>
    <title>【Officeスクリプト入門】デスクトップ版Excelで挑戦！「Hello world」を表示させる手順をマスターしよう</title>
    <description>
    <![CDATA[<p>Excelの「自動化」タブから使える新しい自動化機能「Officeスクリプト」。今回は、簡単なプログラムを作って画面にメッセージを表示させる具体的な手順を、実際の画面の流れに合わせて詳しく解説します。</p>
<h3 style="color: blue; border-left: 5px solid blue; padding-left: 10px;">0. 文法：文字を出す時は「console.log()」を使うだけ</h3>
<p>プログラムの中でログやメッセージを確認したい時は、<b><code>console.log()</code></b> を使います。カッコの中に入れた文字が、実行結果の画面に表示されます。</p>
<h3 style="color: blue; border-left: 5px solid blue; padding-left: 10px;">1. 実践サンプルと作成手順</h3>
<p>それでは、さっそくExcelを開いてスクリプトを作ってみましょう！手順は以下の通りです。</p>
<ol>
<li>Excelの上部メニューにある<b>「自動化」タブ</b>を開きます。</li>
<li>リボンの左端にある<b>「新しいスクリプト」</b>から、<b>「コードエディタで作成」</b>を選択します。</li>
<li>すると、画面の<b>一番右側に「スクリプトエディタ」</b>が立ち上がります。</li>
<li>開いたエディタに、以下のコードをそのまま書き込みます（またはコピーして貼り付けます）。</li>
</ol>
<div style="background-color: #f8f9fa; color: #333; padding: 15px; border-radius: 8px; font-family: monospace; font-size: 14px; line-height: 1.5; border: 1px solid #dee2e6; margin: 15px 0; overflow-x: auto;"><span style="color: #0033cc; font-weight: bold;">function</span> <span style="color: #880000;">main</span>(workbook: <span style="color: #660099;">ExcelScript.Workbook</span>) {<br />
&nbsp;&nbsp;<span style="color: #333;">console</span>.<span style="color: #880000;">log</span>(<span style="color: #cc0000;">"hello world"</span>);<br />
}</div>
<h3 style="color: blue; border-left: 5px solid blue; padding-left: 10px;">2. 実行結果の確認</h3>
<p>コードが書けたら、スクリプトエディタの右上にある<b>実行ボタン（よこむきさんかく ▶）</b>をクリックしてみましょう。</p>
<p>ボタンを押すと、エディタの下部に<b>「出力」タブ</b>が自動的に上がってきて、以下のように結果が表示されます。</p>
<div style="background-color: #eee; padding: 10px; border-radius: 5px; font-family: monospace;">&nbsp;&nbsp;hello world</div>
<h3 style="color: blue; border-left: 5px solid blue; padding-left: 10px;">ワンポイント・アドバイス</h3>
<p><b>VBAの「Debug.Print」との違いは？</b><br />
従来のExcelマクロ（VBA）でイミディエイトウィンドウに文字を出す時は <code>Debug.Print</code> を使っていましたが、Officeスクリプトでは <code>console.log()</code> を使います。これはWebの世界（JavaScriptやTypeScript）で非常によく使われる標準的な書き方なので、覚えておくと他のプログラミングにも応用が効きますよ！<br />
<br />
<br />
</p>]]>
    </description>
    <category>【演習】Officeスクリプト</category>
    <link>https://rikeineo.blog.shinobi.jp/Entry/2129/</link>
    <pubDate>Fri, 22 May 2026 21:27:37 GMT</pubDate>
    <guid isPermaLink="false">rikeineo.blog.shinobi.jp://entry/2129</guid>
  </item>
    <item>
    <title>【生物学問題】進化は一進一退？「断続平衡説」を攻略</title>
    <description>
    <![CDATA[<p>進化といえば「何百万年もかけて、少しずつ途切れなく進むもの」というイメージがあるかもしれません。しかし、それに一石を投じた重要な学説を整理しましょう。</p>
<h3 style="color: blue;">1. 問題：進化のスピードと様式</h3>
<p><b>【 問題 】</b> 生物の進化に関する学説のうち、「種が進化する過程では、短期間に急激な変化が起こる期間と、長期間にわたってほとんど変化が起きない（平衡状態の）期間が存在する」とする説を何と呼ぶでしょうか？</p>
<p>① 漸変説（グラジュアリズム） &nbsp; ② 断続平衡説 &nbsp; ③ 中立進化説 &nbsp; ④ 用不用説</p>
<h3 style="color: blue;">2. 正解：進化理論に関する正解</h3>
<div style="font-family: sans-serif; border: 2px solid #0000FF; padding: 15px; background-color: #f0f8ff;">
<p style="font-size: 1.2em; font-weight: bold; margin: 0;">正解： ② 断続平衡説</p>
</div>
<h3 style="color: blue;">3. 解説：爆発的な変化と長い安定</h3>
<p>エルドリッジとグールドによって提唱されたこの説は、化石の記録に見られる「ある時突然、新しい種が登場し、その後しばらく変化しない」という事実をうまく説明しています。</p>
<div style="font-family: monospace; border: 1px solid #ccc; padding: 10px; line-height: 1.6; background-color: #f9f9f9;">[ 進化の2つの捉え方 ]<br />
★ <b>断続平衡説（Punctuated equilibrium）</b>：環境の激変や隔離などをきっかけに、短い期間（地質学的スケールでの数万〜数十万年）に一気に新種が誕生し、一度安定するとその後は長期間（数百〜数千万年）ほとんど変化しないという考え方。<br />
★ <b>漸変説（Gradualism）</b>：ダーウィンが考えたような、世代を重ねるごとに「一歩一歩、絶え間なく、ゆっくりと」進化が蓄積していくという考え方。</div>
<p>1. <b>試験のポイント</b>: 「短期間の急激な変化」と「長期間の安定（平衡）」という2つのフェーズが交互に現れる、というフレーズが出たら「断続平衡説」を選びましょう。木村資生氏の「中立進化説（分子レベルの進化は偶然決まる）」など、他の進化理論と混同しないように区別が必要です。<br />
2. <b>バイオインフォの視点</b>: 現在のゲノム解析（分子系統樹の作製など）では、遺伝子の変化スピードが一定であると仮定する「分子時計」が使われますが、実際には環境ストレスなどによって進化の速度（変異の固定速度）が加速する時期があることが分かっています。こうした「進化速度の不均一性」をモデル化し、計算機で過去の進化の歴史をシミュレーションする研究が行われています。</p>
<hr />
<h3 style="color: blue;">4. まとめ</h3>
<p>「進化はダラダラ進むのではなく、急激なジャンプと長い安定の繰り返しである＝<b>断続平衡説</b>」です。システム開発で言えば、長らく安定稼働していたシステムが、大きな技術変革（環境の変化）によって短期間で一気にリプレイスされるようなイメージに近いかもしれませんね！</p>]]>
    </description>
    <category>【生物学問題】</category>
    <link>https://rikeineo.blog.shinobi.jp/Entry/2128/</link>
    <pubDate>Sun, 17 May 2026 11:06:45 GMT</pubDate>
    <guid isPermaLink="false">rikeineo.blog.shinobi.jp://entry/2128</guid>
  </item>
    <item>
    <title>【VBAスタンダード対策】プロシージャを強制終了する「Exit Sub」の制御構造を攻略！</title>
    <description>
    <![CDATA[<p>プログラムを実行中、エラーや特定の条件が発生した時点で、それ以降の処理をスキップしてプロシージャを終了させたい場合があります。その際に使用する <code>Exit Sub</code> の仕組みと、処理の流れる構造を正しく理解しましょう。</p>
<h3 style="color: blue;">1. 問題：Exit Sub 実行時の処理の流れ</h3>
<p><b>【 問題 】</b> 下記のコードを実行して <code>Main</code> プロシージャを呼び出した際、メッセージボックスに表示される文字列はどれでしょうか？</p>
<div style="font-family: monospace; border: 1px solid #ccc; padding: 10px; background-color: #f9f9f9;">Sub Main()<br />
&nbsp;&nbsp;&nbsp;&nbsp;Call CheckValue(10)<br />
&nbsp;&nbsp;&nbsp;&nbsp;MsgBox "完了"<br />
End Sub<br />
<br />
Sub CheckValue(num As Integer)<br />
&nbsp;&nbsp;&nbsp;&nbsp;If num &gt; 5 Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit Sub<br />
&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
&nbsp;&nbsp;&nbsp;&nbsp;MsgBox "チェック通過"<br />
End Sub</div>
<p>① 「チェック通過」が表示された後、「完了」が表示される<br />
② 「完了」だけが表示される<br />
③ 「チェック通過」だけが表示される<br />
④ 何も表示されずにマクロ全体が終了する</p>
<h3 style="color: blue;">2. 正解：Exit Sub の制御フローに関する正解</h3>
<div style="font-family: sans-serif; border: 2px solid #0000FF; padding: 15px; background-color: #f0f8ff;">
<p style="font-size: 1.2em; font-weight: bold; margin: 0;">正解： ② 「完了」だけが表示される</p>
</div>
<h3 style="color: blue;">3. 解説：呼び出し元へ処理を戻す構造</h3>
<p><code>Exit Sub</code> の最も重要な構造的特徴は、<b>「マクロ全体を終了させるわけではなく、呼び出されたプロシージャだけを終了して、呼び出し元に制御を戻す」</b>という点にあります。</p>
<div style="font-family: monospace; border: 1px solid #ccc; padding: 10px; line-height: 1.6; background-color: #f9f9f9;">[ 処理のコントロール構造図 ]<br />
<br />
<b>Sub Main()</b><br />
│ Call CheckValue(10) ───┐ 処理を移す<br />
│ │<br />
│ （戻ってきた！） &darr;<br />
│ <b>MsgBox "完了"</b> <b>Sub CheckValue(num)</b><br />
<b>End Sub</b> │ If 10 &gt; 5 Then<br />
│ <b>Exit Sub</b> ── 途中で脱出！<br />
│ End If<br />
│ <span style="color: red;">MsgBox "チェック通過" (実行されない)</span><br />
<b>End Sub</b></div>
<p>1. <b>ここが試験に出る！</b>: スタンダード試験では、マクロ全体を終了させる <code>End</code> ステートメントと、そのプロシージャだけを抜ける <code>Exit Sub</code> の違いを突いてきます。今回のケースでは、<code>CheckValue</code> は途中で終了しますが、呼び出し元である <code>Main</code> の次の行（MsgBox "完了"）に処理が戻る構造をしっかりと見極める必要があります。<br />
2. <b>エンジニアの視点</b>: Java 17などの言語における `return;`（戻り値なしの即時復帰）と全く同じ構造です。実務において、不適切なデータ（事前条件の不一致）をプロシージャの最初でチェックして弾く手法を「ガード節（Guard Clause）」と呼びます。深くネスト（インデント）されたIf文を作らないための、理系NEOなスマートな設計パターンですね。</p>
<hr />
<h3 style="color: blue;">4. まとめ</h3>
<p>「Exit Subは、その部屋（Sub）から出るだけで、元いた場所（Main）には戻る」。この構造を知っておけば、複雑なプロシージャ連携のデバッグも怖くありません。適切な脱出処理を組み込んで、無駄のない洗練された制御フローを構築しましょう。<br />
<br />
<br />
</p>]]>
    </description>
    <category>【VBA スタンダード試験】</category>
    <link>https://rikeineo.blog.shinobi.jp/Entry/2127/</link>
    <pubDate>Fri, 15 May 2026 22:00:56 GMT</pubDate>
    <guid isPermaLink="false">rikeineo.blog.shinobi.jp://entry/2127</guid>
  </item>
    <item>
    <title>【VBAスタンダード対策】文字列連結演算子「&amp;」と「+」の構造的違いを攻略！</title>
    <description>
    <![CDATA[<p>VBAで文字列を結合する際、<code>&amp;</code>（アンパサンド）と <code>+</code>（プラス）のどちらでも繋げられるように見えます。しかし、この2つは内部の処理構造が全く異なります。データの型が混ざったときに起きるVBA特有の挙動を解き明かしましょう。</p>
<h3 style="color: blue;">1. 問題：型が混在する場合の連結演算子の挙動</h3>
<p><b>【 問題 】</b> 下記のコードを実行した際、メッセージボックスに表示される結果の組み合わせとして正しいものはどれでしょうか？</p>
<div style="font-family: monospace; border: 1px solid #ccc; padding: 10px; background-color: #f9f9f9;">Sub OperatorTest()<br />
&nbsp;&nbsp;&nbsp;&nbsp;Dim val1 As String<br />
&nbsp;&nbsp;&nbsp;&nbsp;Dim val2 As Integer<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;val1 = "100"<br />
&nbsp;&nbsp;&nbsp;&nbsp;val2 = 200<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;' --- (1) &amp; 演算子で結合 ---<br />
&nbsp;&nbsp;&nbsp;&nbsp;Dim result1 As String<br />
&nbsp;&nbsp;&nbsp;&nbsp;result1 = val1 &amp; val2<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;' --- (2) + 演算子で結合 ---<br />
&nbsp;&nbsp;&nbsp;&nbsp;Dim result2 As String<br />
&nbsp;&nbsp;&nbsp;&nbsp;result2 = val1 + val2<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;MsgBox result1 &amp; " / " &amp; result2<br />
End Sub</div>
<p>① result1: "100200" / result2: "100200"<br />
② result1: "100200" / result2: 型違いによるエラー（または 300）<br />
③ result1: 300 / result2: "100200"<br />
④ result1: 型違いによるエラー / result2: 300</p>
<h3 style="color: blue;">2. 正解：演算子の優先順位と型変換に関する正解</h3>
<div style="font-family: sans-serif; border: 2px solid #0000FF; padding: 15px; background-color: #f0f8ff;">
<p style="font-size: 1.2em; font-weight: bold; margin: 0;">正解： ② result1: "100200" / result2: 型違いによるエラー（または 300）</p>
</div>
<h3 style="color: blue;">3. 解説：強制結合の「&amp;」と、足し算優先の「+」</h3>
<p>VBAにおいて、この2つの演算子は「何を目的として作られたか」という根本的な構造の設計が異なります。</p>
<div style="font-family: monospace; border: 1px solid #ccc; padding: 10px; line-height: 1.6; background-color: #f9f9f9;">[ 演算子の構造的特徴 ]<br />
<br />
<b>■ ＆ 演算子（文字列結合の専門職）</b><br />
右と左のデータが何であれ、<b>「すべて文字列に強制変換してくっつける」</b>という構造を持っています。文字列の "100" と 数値の 200 なら、200を文字に変えて "100200" にします。エラーが起きにくく安全です。<br />
<br />
<b>■ ＋ 演算子（本来は足し算の専門職）</b><br />
片方が「数値型」である場合、VBAは構造的に<b>「これは足し算（算術演算）だな」</b>と解釈しようとします。そのため、もう片方の "100" も数値の 100 に自動変換して「100 + 200 = 300」として計算しようとします。<br />
<br />
<b>★ ここがトラップ！：</b><br />
もし、<code>val1 = "VBA"</code> のように数値に変換できない文字だった場合、<code>"VBA" + 200</code> は足し算が不可能なため、<b>「型が一致しません（Runtime Error 13）」</b>というエラーではじかれます。</div>
<p>1. <b>ここが試験に出る！</b>: スタンダード試験では、「文字列結合は <code>&amp;</code> を使う」というのが大原則として問われます。<code>+</code> を使ったコードを提示し、データ型が混ざったときに計算されてしまう挙動や、エラーになる危険性を指摘させる問題が定番です。<br />
2. <b>エンジニアの視点</b>: Java 17などの現代的な言語では `+` 演算子が文字列結合として安全にオーバーロード（多重定義）されていますが、VBAは古い仕様を引き継いでいるため、四則演算のプラスと明確に区別する「理系NEO」な厳密さが必要です。実務でバグを生まないためにも、文字列の結合には **100% `&amp;` を使う** のがプロの暗黙の了解です。</p>
<hr />
<h3 style="color: blue;">4. まとめ</h3>
<p>「文字を繋ぐなら四の五の言わずに『&amp;』」。この構造ルールを徹底するだけで、データの型に振り回されるバグは一掃できます。演算子ひとつにも明確な役割を与えること。それが、美しく堅牢なマクロの設計図を描くための基本です。<br />
<br />
<br />
</p>]]>
    </description>
    <category>【VBA スタンダード試験】</category>
    <link>https://rikeineo.blog.shinobi.jp/Entry/2126/</link>
    <pubDate>Fri, 15 May 2026 05:33:42 GMT</pubDate>
    <guid isPermaLink="false">rikeineo.blog.shinobi.jp://entry/2126</guid>
  </item>
    <item>
    <title>【VBAスタンダード対策】オブジェクトのクリア「Nothing」と状態判定の構造！&lt;/h3&gt;</title>
    <description>
    <![CDATA[<p>オブジェクト変数に格納された「実体への参照（リモコン）」は、使い終わったら明示的にクリアすることが推奨されます。また、変数が空っぽ（未設定）の状態であるかどうかを正確に判定する構造をマスターしましょう。</p>
<h3 style="color: blue;">1. 問題：Nothingによるクリアと状態判定の文法</h3>
<p><b>【 問題 】</b> オブジェクト変数 <code>myWB</code> に割り当てられたワークブックの参照をクリアし、その後、正しくクリアされたかどうか（Nothingであるか）を条件分岐で確認したい。空欄 <b>( A )</b> と <b>( B )</b> に入る正しいキーワードの組み合わせはどれでしょうか？</p>
<div style="font-family: monospace; border: 1px solid #ccc; padding: 10px; background-color: #f9f9f9;">Sub ClearTest()<br />
&nbsp;&nbsp;&nbsp;&nbsp;Dim myWB As Workbook<br />
&nbsp;&nbsp;&nbsp;&nbsp;Set myWB = Workbooks.Open("C:\Test.xlsx")<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;' --- (1) 参照をクリアする ---<br />
&nbsp;&nbsp;&nbsp;&nbsp;Set myWB = <b>( A )</b><br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;' --- (2) クリアされたか判定する ---<br />
&nbsp;&nbsp;&nbsp;&nbsp;If myWB <b>( B )</b> Nothing Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MsgBox "変数はクリアされています。"<br />
&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
End Sub</div>
<p>① (A) Empty (B) =<br />
② (A) Nothing (B) =<br />
③ (A) Empty (B) Is<br />
④ (A) Nothing (B) Is</p>
<h3 style="color: blue;">2. 正解：オブジェクトのクリアと判定に関する正解</h3>
<div style="font-family: sans-serif; border: 2px solid #0000FF; padding: 15px; background-color: #f0f8ff;">
<p style="font-size: 1.2em; font-weight: bold; margin: 0;">正解： ④ (A) Nothing (B) Is</p>
</div>
<h3 style="color: blue;">3. 解説：Nothingという概念と「Is」演算子</h3>
<p>オブジェクト変数を「何も指していない状態」にするキーワードと、その状態を比較する演算子には、VBA独自の構造ルールがあります。</p>
<div style="font-family: monospace; border: 1px solid #ccc; padding: 10px; line-height: 1.6; background-color: #f9f9f9;">[ Nothingの構造的メカニズム ]<br />
<br />
<b>1. クリアは「Set 変数 = Nothing」</b><br />
<code>Nothing</code> は「どこも指していない無の状態」を表す特殊なキーワードです。通常の変数でいう 0 や空文字（""）のような役割ですが、オブジェクト変数なので代入時には必ず <b>Set</b> が必要です。これによりメモリ上の参照（紐付け）が完全に切断されます。<br />
<br />
<b>2. 判定には「=」ではなく「Is」を使う</b><br />
<b>【超重要】</b> オブジェクトが <code>Nothing</code> かどうかを判定するとき、<code>If myWB = Nothing</code> と書くと<b>実行時エラー</b>になります。値の比較ではなく「同じ対象を指しているか（参照の比較）」を行うため、構造的に <b>Is 演算子</b> を使用しなければなりません。</div>
<p>1. <b>ここが試験に出る！</b>: スタンダード試験では、あえて <code>If myWB = Nothing</code> という誤ったコードを提示し、エラーになる原因を答えさせる問題が頻出します。オブジェクトの比較は必ず <code>Is</code>（または否定の <code>IsNot</code> ではなく <code>Not ... Is Nothing</code>）を使うという構造を叩き込んでください。<br />
2. <b>エンジニアの視点</b>: Java 17などでは `if (myWB == null)` のように共通の比較演算子を使いますが、VBAは「値の比較（=）」と「参照の比較（Is）」を厳密に区別する理系NEOな設計になっています。大規模なマクロでメモリリーク（メモリが解放されずに重くなる現象）を防ぐためにも、プロシージャの最後で `Set 変数 = Nothing` を明示する癖をつけるのがプロの構造化プログラミングです。</p>
<hr />
<h3 style="color: blue;">4. まとめ</h3>
<p>「オブジェクトを消すならSet ＝ Nothing、確かめるならIs Nothing」。このセットを完璧に理解していれば、オブジェクト変数の制御で迷うことはありません。メモリ空間を綺麗に保ち、エラーのないスマートなマクロを構築しましょう。<br />
<br />
<br />
</p>]]>
    </description>
    <category>【VBA スタンダード試験】</category>
    <link>https://rikeineo.blog.shinobi.jp/Entry/2125/</link>
    <pubDate>Fri, 15 May 2026 05:22:48 GMT</pubDate>
    <guid isPermaLink="false">rikeineo.blog.shinobi.jp://entry/2125</guid>
  </item>
    <item>
    <title>【VBAスタンダード対策】オブジェクト変数の代入と「Set」の構造を攻略！</title>
    <description>
    <![CDATA[<p>オブジェクト変数とは、単なる「値」ではなく、ワークシートやセル範囲といった「モノ（オブジェクト）」を操作するために、その場所を記憶しておくための変数です。通常の変数とは代入のルールが根本的に異なります。</p>
<h3 style="color: blue;">1. 問題：オブジェクト変数への正しい代入方法</h3>
<p><b>【 問題 】</b> 変数 <code>mySheet</code> に「Sheet1」というワークシートを割り当てて、そのシートの名前を表示させたい。空欄 <b>( A )</b> に入る正しい記述はどれでしょうか？</p>
<div style="font-family: monospace; border: 1px solid #ccc; padding: 10px; background-color: #f9f9f9;">Sub ObjectTest()<br />
&nbsp;&nbsp;&nbsp;&nbsp;Dim mySheet As Worksheet<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;<b>( A )</b> Worksheets("Sheet1")<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;MsgBox mySheet.Name<br />
End Sub</div>
<p>① mySheet =<br />
② Set mySheet =<br />
③ Let mySheet =<br />
④ mySheet :=</p>
<h3 style="color: blue;">2. 正解：オブジェクト変数の代入に関する正解</h3>
<div style="font-family: sans-serif; border: 2px solid #0000FF; padding: 15px; background-color: #f0f8ff;">
<p style="font-size: 1.2em; font-weight: bold; margin: 0;">正解： ② Set mySheet =</p>
</div>
<h3 style="color: blue;">3. 解説：なぜ「Set」が必要なのか？</h3>
<p>VBAの構造において、通常の変数とオブジェクト変数は、メモリへの格納方法が明確に区別されています。</p>
<div style="font-family: monospace; border: 1px solid #ccc; padding: 10px; line-height: 1.6; background-color: #f9f9f9;">[ 変数の構造的違い ]<br />
<br />
<b>■ 値の代入（Set不要）</b><br />
Dim n As Integer<br />
n = 100 <span style="color: green;">' 箱の中に直接「100」を入れる</span><br />
<br />
<b>■ オブジェクトの代入（Set必須）</b><br />
Dim r As Range<br />
<b>Set</b> r = Range("A1") <span style="color: green;">' 箱の中に「A1セルという実体への参照（リモコン）」を入れる</span><br />
<br />
<b>★ 理系NEOなポイント：</b><br />
・<b>参照（ポインタ）</b>：オブジェクト変数は、実体そのものを箱に入れているわけではなく、実体を操作するための「リモコン」を箱に入れているような構造です。<br />
・<b>Nothing</b>：オブジェクト変数を宣言した直後の初期状態は 0 ではなく <b>Nothing</b> です。Nothingの状態（リモコンがどこも指していない状態）でプロパティを操作しようとすると「オブジェクト変数が設定されていません」というエラーになります。</div>
<p>1. <b>ここが試験に出る！</b>: スタンダード試験では「Setを書き忘れていないか」という点が非常に多く問われます。また、使い終わった後に <code>Set mySheet = Nothing</code> としてメモリを解放する構造も重要です。<br />
2. <b>エンジニアの視点</b>: Java 17などのオブジェクト指向言語では `new` キーワードでインスタンス化しますが、VBAでは既存のExcel要素（シートなど）を扱う際、この `Set` が「これは単なる値のコピーではなく、実体へのリンクである」という宣言の役割を果たしています。</p>
<hr />
<h3 style="color: blue;">4. まとめ</h3>
<p>「オブジェクトにはSet、使い終わったらNothing」。この代入構造をマスターすることで、複雑なExcel操作も変数一つでスマートに制御できるようになります。変数という「リモコン」を正しく対象に向け、正確なマクロを構築しましょう。</p>]]>
    </description>
    <category>【VBA スタンダード試験】</category>
    <link>https://rikeineo.blog.shinobi.jp/Entry/2124/</link>
    <pubDate>Thu, 14 May 2026 21:25:22 GMT</pubDate>
    <guid isPermaLink="false">rikeineo.blog.shinobi.jp://entry/2124</guid>
  </item>
    <item>
    <title>【BI技術者認定試験対策】性別で現れ方が変わる！「伴性遺伝」を攻略</title>
    <description>
    <![CDATA[<p>遺伝子が「性染色体（XまたはY）」の上にある場合、その形質が伝わる確率は男女（雌雄）で大きく異なります。この独特な遺伝形式をマスターしましょう。</p>
<h3 style="color: blue;">1. 問題：性染色体に由来する遺伝</h3>
<p><b>【 問題 】</b> X染色体やY染色体といった「性染色体」の上に存在する遺伝子によって引き起こされる遺伝現象を何と呼ぶでしょうか？</p>
<p>① 常染色体遺伝 &nbsp; ② 伴性遺伝 &nbsp; ③ 細胞質遺伝 &nbsp; ④ 核外遺伝</p>
<h3 style="color: blue;">2. 正解：性染色体と遺伝に関する正解</h3>
<div style="font-family: sans-serif; border: 2px solid #0000FF; padding: 15px; background-color: #f0f8ff;">
<p style="font-size: 1.2em; font-weight: bold; margin: 0;">正解： ② 伴性遺伝</p>
</div>
<h3 style="color: blue;">3. 解説：X染色体の「スペア」があるかないか</h3>
<p>多くの場合、X染色体にある潜性（劣性）遺伝子の形質が、男性（XY）において現れやすいのが特徴です。</p>
<div style="font-family: monospace; border: 1px solid #ccc; padding: 10px; line-height: 1.6; background-color: #f9f9f9;">[ 伴性遺伝のポイント ]<br />
★ <b>X連鎖潜性遺伝</b>：女性（XX）は正常なXが1つあれば発症しませんが、男性（XY）はXが1つしかないため、そこに変異があると形質が現れます。例：血友病、赤緑色覚多様性。<br />
★ <b>保因者</b>：女性で、片方のXに変異遺伝子を持っているが発症していない人を「保因者（キャリア）」と呼びます。<br />
★ <b>Y連鎖遺伝</b>：Y染色体上にある遺伝子によるもので、父親から息子へ必ず伝わります。</div>
<p>1. <b>試験のポイント</b>: 前問の「限性遺伝（性別によってスイッチが入る）」との違いを明確にしましょう。伴性遺伝は「遺伝子の置き場所（性染色体）」が原因で、結果として男女の出現比率に偏りが出る現象です。<br />
2. <b>バイオインフォの視点</b>: ゲノム解析（GWASなど）において、性染色体は常染色体とは異なる解析手法を用います。男性はXが1本、女性は2本という「コピー数」の違いを考慮して統計処理を行う必要があり、バイオインフォマティシャンにとっても慎重なハンドリングが求められる領域です。</p>
<hr />
<h3 style="color: blue;">4. まとめ</h3>
<p>「性染色体の上に乗っている遺伝子の遺伝＝<b>伴性遺伝</b>」です。特に「X連鎖」のパターンは家系図問題などでも非常によく出題されるため、男女での現れ方の違いを論理的に理解しておきましょう！<br />
<br />
<br />
</p>]]>
    </description>
    <category>【BI試験】1-3 遺伝学</category>
    <link>https://rikeineo.blog.shinobi.jp/Entry/2123/</link>
    <pubDate>Sun, 10 May 2026 21:25:57 GMT</pubDate>
    <guid isPermaLink="false">rikeineo.blog.shinobi.jp://entry/2123</guid>
  </item>
    <item>
    <title> 【BI技術者認定試験対策】性別によって決まる形質！「限性遺伝」を攻略</title>
    <description>
    <![CDATA[<p>遺伝子を持っていても、特定の性別（オスまたはメス）の個体にしかその形質が現れない不思議な現象があります。性染色体と表現型の関係を整理しましょう。</p>
<h3 style="color: blue;">1. 問題：特定の性のみに現れる遺伝</h3>
<p><b>【 問題 】</b> 特定の遺伝子が、一方の性の個体にのみ表現型として現れる遺伝現象を何と呼ぶでしょうか？（例：孔雀の飾り羽や、人間の二次性徴など）</p>
<p>① 伴性遺伝 &nbsp; ② 限性遺伝 &nbsp; ③ 従性遺伝 &nbsp; ④ 細胞質遺伝</p>
<h3 style="color: blue;">2. 正解：性に関わる遺伝形式の正解</h3>
<div style="font-family: sans-serif; border: 2px solid #0000FF; padding: 15px; background-color: #f0f8ff;">
<p style="font-size: 1.2em; font-weight: bold; margin: 0;">正解： ② 限性遺伝</p>
</div>
<h3 style="color: blue;">3. 解説：性別という「フィルター」</h3>
<p>遺伝子自体は両方の性別が持っている場合もありますが、ホルモンの影響などにより、特定の性別でしかスイッチが入らない形質のことです。</p>
<div style="font-family: monospace; border: 1px solid #ccc; padding: 10px; line-height: 1.6; background-color: #f9f9f9;">[ 遺伝形式の細かな違い ]<br />
★ <b>限性遺伝（げんせいいでん）</b>：特定の性別だけに現れる。例：乳汁分泌（雌のみ）、雄鳥の鶏冠（雄のみ）。<br />
★ <b>伴性遺伝（ばんせいいでん）</b>：性染色体（X, Y）上に遺伝子があり、性別によって現れる確率が異なる。例：赤緑色覚多様性。<br />
★ <b>従性遺伝（じゅうせいいでん）</b>：両性に出るが、性別によって優劣の関係が変わる。例：若ハゲ（男性で顕性、女性で潜性）。</div>
<p>1. <b>試験のポイント</b>: 最も混同しやすいのが「伴性遺伝」との違いです。「遺伝子がどこにあるか（性染色体）」に注目するのが伴性遺伝、「どちらの性別に現れるか（表現型）」に注目するのが限性遺伝と整理しましょう。<br />
2. <b>バイオインフォの視点</b>: 性特異的な遺伝子発現（Sex-biased gene expression）の解析は、トランスクリプトーム解析（RNA-Seq）における重要なトピックです。同じゲノムを持ちながら、なぜオスとメスでこれほどまでに形態や機能が異なるのか？ その背後にある「遺伝子スイッチ」の制御ネットワークをデータから解明する研究が進んでいます。</p>
<hr />
<h3 style="color: blue;">4. まとめ</h3>
<p>「特定の性別だけに形質が出る＝<b>限性遺伝</b>」です。生物が繁殖のために特化した能力や外見を維持するための、進化上の重要な仕組みと言えますね！<br />
<br />
<br />
</p>]]>
    </description>
    <category>【BI試験】1-3 遺伝学</category>
    <link>https://rikeineo.blog.shinobi.jp/Entry/2122/</link>
    <pubDate>Sun, 10 May 2026 21:24:29 GMT</pubDate>
    <guid isPermaLink="false">rikeineo.blog.shinobi.jp://entry/2122</guid>
  </item>

    </channel>
</rss>