【2022年最新】Yoast Duplicate Postの使い方。簡単リライトとコピーで時短!
投稿一覧
管理バー
編集画面
一括操作
- 編集画面のメタボックス内
- 投稿一覧にカラムを追加して表示
- 投稿一覧の各タイトルの後に表示
編集画面のメタボックス内
投稿一覧にカラムを追加して表示
投稿一覧の各タイトルの後に表示
【ExcelVBA】SubとFunctionの違い・使い方を徹底解説!
Siro
- 処理がわかりやすくなる
- 複雑な計算を別の処理にわけて作れる
- エラーの箇所が特定しやすくなる
そこで今回は、 SubとFunctionの違い・使い方について徹底的に解説します!
関数を使った処理の流れについて
VBAはマクロの記録で作る場合や、入門サイトで学んだ方は次のように Sub で処理を書くと思います。
ただ、処理が長くなってくると、 どこで何を書いているのかわからなくなったり、エラーが発生したときにエラーの原因を特定するのが難しくなること があります。
SubとFunctionの違いとは
Subの使い方
このように、 CallでSubの関数名を書くことで、別のSubの処理を実行することができます。
Functionの使い方
基本的にはSubと同じ使い方もできますが、Functionの場合は処理の結果を 戻り値 として返すことができます。
このように、「 as 型名 」を関数名のうしろに書くことで、戻り値を返すことができるようになります。
応用編:処理のエラー結果を返すためにFunctionを利用する
Functionの処理(inputSalesTax)の説明
処理の結果を返すため、「 as String 」で文字列を返すように書いています。
「 on レベルや使い方、違いを徹底解説 error goto 〇〇 」はエラー処理を書くときのおまじないなのですが、エラーが発生すると処理をすっ飛ばして〇〇に移動することができます。
ここでは、エラーが起きたときに「 inputSalesTax_Err: 」に処理を移動するように書いています。
正常に処理が終了した場合は「””」を返すために処理の冒頭で「 inputSalesTax = “” 」を書き、エラーの場合は「”エラー”」を返すため「inputSalesTax_Err:」以降に「 inputSalesTax = “エラー” 」を書いています。
こうしておくことで、 Functionを実行した後に返ってくる文字列によって正常に処理が完了したのか、エラーが発生したのかを判断できるようになります。
メインのSubの処理の説明
メイン処理(Test)では、処理結果を保存するために「 strResultMessage 」の変数にinputSalesTaxの戻り値(「””」 or 「”エラー”」)を入れています。
その後、if文で strResultMessageが「”エラー”」だったときのみ、エラーメッセージを表示する処理を書く ことでエラーが検知できるようにしているわけですね。
なお、「inputSalesTax(2000, 1.08)」を「inputSalesTax(“こんにちは”, レベルや使い方、違いを徹底解説 レベルや使い方、違いを徹底解説 1.08)」のようにあえて引数を文字列に変えると、エラーメッセージを確認することができます。
今回は、 SubとFunctionの違い・使い方 について解説しました。
慣れるまでは「Subで動きを確認する→ SubをFunctionに書き換える→as 〇〇をつけて別のSubから処理を呼び出す」の流れで書いていくと覚えやすいと思うので、ぜひ使ってみてくださいね!
【2022年最新】Yoast Duplicate Postの使い方。簡単リライトとコピーで時短!
投稿一覧
管理バー
編集画面
一括操作
- 編集画面のメタボックス内
- 投稿一覧にカラムを追加して表示
- 投稿一覧の各タイトルの後に表示
編集画面のメタボックス内
投稿一覧にカラムを追加して表示
投稿一覧の各タイトルの後に表示
過去完了形の継続|使い方・否定と疑問の形・過去完了進行形との違いまで徹底解説
(1)を図解してみましょう。 レベルや使い方、違いを徹底解説
この文では、「過去」が「アメリカに渡った時」、「さらに前の過去」が「その10年前」になります。
つまり、「さらに前の過去」から「過去」までの10年間、「日本に住む」という 状態が継続していた ことになります。
- for (~の間)
- since (~以来)
- when S V (SがVしたとき)
- before S V (SがVする前に)
- until S V (SがVするまで)
状態動詞と動作動詞
英語の動詞は、「状態」を表す状態動詞と「動作」を表す動作動詞の二種類に分類することができます。
状態動詞には、know、like、live などの一般動詞や be動詞が含まれます。
過去完了形の継続用法は「状態の継続」を表す用法なので、状態動詞を使います。
一方、「動作の継続」を表す場合は、この記事の後半で説明するを使います。
過去完了形:否定文・疑問文の作り方
過去完了形を用いた肯定文を否定文にする場合は、 had の後ろに not をつけます レベルや使い方、違いを徹底解説 。なお、had not は hadn’t のように省略することができます。
(4) He hadn’t been active in the industry for a while when I visited him.
私が訪れた時、彼は業界ではしばらく活躍していなかった。
過去完了形を用いた肯定文を疑問文にする場合は、 had を主語の前に出します 。
(5) Had he been sick for a long time when he saw the doctor?
医者にかかった時、彼は長い間体調が悪かったのですか?
この疑問文に対する返答は、「Yes, he had.」「No, he hadn’t.」のようになります。
「期間」や「起点」を尋ねる疑問文
過去完了形で、ある状態が「どのくらい継続していたか」という「期間」を尋ねる場合は 〈How long + had + 主語 + 過去分詞〜?〉 という構文を使います。
(6) How long had he lived in Japan before he moved to the U.S.?
彼はアメリカに渡る前、どのくらいの期間日本に住んでいましたか?
一方、ある状態が「いつから継続していたか」という「起点」を尋ねる場合は 〈Since when + had + 主語 + 過去分詞〜?〉 という構文を使います。
(7) Since when had he lived in Japan before he moved to the U.S.?
彼はアメリカに渡る前、いつから日本に住んでいましたか?
1 There he was an athlete famous throughout the region. という英文が
2 had betterとhave betterの違いと使い方がよく分からないので教えて欲しいです!
3 The trap severed his leg above the foot in August 2020. この文章
4 英語の学年末試験の結果が返ってきました。それでわからないことがあるのですが、 下の写真の2問で、なぜ自分の解答が間違って
5 The police are suspicious of him どうして「of」がつくのか教えてほしいです。
過去完了形の継続用法と過去完了進行形の違い
上で紹介したように、用法なので、動詞は「状態動詞」を使います。
一方、「」という「」を表す場合は、動作動詞をで使います。
過去完了進行形は <主語 + had been + 動詞のing形> という形をとります。
× I had eaten for one hour when he called me.
〇 I had been レベルや使い方、違いを徹底解説 eating for one hour when he called me.
彼が私に電話をした時、私は1時間食べ続けていた。
× How long had you done your homework when he called you?
〇 How long had you been doing your homework when he called you?
彼があなたに電話をした時、あなたはどれくらいの時間宿題をやり続けていましたか?
現在完了形の継続用法|使い方や現在完了進行形との違い、頻出の前置詞まで徹底解説
下の図を見て、for と レベルや使い方、違いを徹底解説 レベルや使い方、違いを徹底解説 since のイメージの違いを掴んでください。
否定文・疑問文の作り方
現在完了形を用いた肯定文を否定文にする場合は、 have/has の後ろに not をつけます 。なお、have not/has not は haven’t/hasn’t のように省略することができます。
(9) He hasn’t been active on SNS lately.
彼は最近SNSであまり活躍していない。
現在完了形を用いた肯定文を疑問文にする場合は、 have/has を主語の前に出します 。
(10) Has he been active on SNS lately?
彼は最近SNSで活躍していますか?
この疑問文に対する返答は、「Yes, he has.」「No, he hasn’t.」のようになります。
「期間」や「起点」を尋ねる疑問文
現在完了形で、ある状態が「どのくらい継続しているか」という「期間」を尋ねる場合は 〈How long + have/has + 主語 + 過去分詞〜?〉 という構文を使います。
(11) How long have you been sick?
あなたの体調の悪さはどれくらい続いていますか?
(12) How long have you known each other?
あなたたちは知り合ってどれくらい経ちますか?
一方、ある状態が「いつから継続しているか」という「起点」を尋ねる場合は 〈Since when + have/has + 主語 + 過去分詞〜?〉 という構文を使います。
(13) Since when have you been sick?
あなたはいつから体調が悪いですか?
(14) Since when have you known each other?
あなたたちはいつから知り合っていますか?
1 There he was an レベルや使い方、違いを徹底解説 athlete famous throughout the region. という英文が
2 had betterとhave betterの違いと使い方がよく分からないので教えて欲しいです!
3 The trap severed his leg above the foot in August 2020. この文章
4 英語の学年末試験の結果が返ってきました。それでわからないことがあるのですが、 下の写真の2問で、なぜ自分の解答が間違って
5 The police are suspicious of him どうして「of」がつくのか教えてほしいです。
現在完了形の継続用法と現在完了進行形の違い
上で紹介したように、現在完了形の継続用法は「状態の継続」を表す用法なので、状態動詞を使います。
一方、「ずっと~し続けている」という 「動作の継続」を表す場合は、動作動詞をで使います。
現在完了進行形は <主語 + have/has + been + 動詞のing形> という形をとります。
× I have eaten for one hour.
〇 I have been eating for one hour.
私は1時間食べ続けている。
× How long have you done your homework?
〇 How long have you been doing your homework?
あなたが宿題をやり続けてどれくらい経ちますか?
この場合、現在完了形が習慣的な継続を表すのに対し、現在完了進行形は一時的な継続を表します。
(15) I have studied English for five years.(習慣的な継続)
私は5年間英語の勉強をしている。
(16) I have been studying English for two hours.(一時的な継続)
私は2時間ずっと英語を勉強し続けている。
コメント