パソコン仕事5倍塾
35,000人を指導した東大卒・元日本IBM社内講師が直伝
MENU
伊久間博之さんの投稿
(投稿ID: 516)
小川 慶一さんのコメント
(コメントID: 1340)
伊久間博之さんのコメント
(コメントID: 1346)
(コメントID: 1347)
(コメントID: 1358)
Sub to10() to10 = 2 Range("A1") = to10 End Sub
Captcha:
たった1ヶ月で人生が劇的に変わりました
佐藤信さん
役員クラスの方から高い評価を受けるようになりました。
佐賀県 - 岩本徹さん
今までまったく知らなかったショートカットキーを使いまくっています。
東京都 - 鷹觜慶さん
年齢60才間近、営業で外回りの時間が多い私でも退社時間が1-2時間程度早くなりました。
東京都 - 宗内隆明さん
受講前もすでにパソコン得意でしたが、そんな私でも受講して本当に良かったと思えた講座です。
東京都 - 佐伯とも子さん
ここまで包括的に仕事に役立つ深い学びを受けれた講座は初めてでした
東京都 - 飯田倫子さん
2025年05月07日 08:26
2025年05月07日 08:13
2025年05月04日 20:00
2025年04月28日 08:52
2025年04月22日 05:41
2025年05月09日 08:58
2025年05月08日 23:23
2025年05月08日 23:06
2022年02月24日 10:59
表示できる投稿はありません。
この学習サイトの教材制作、サポート、システム開発をすべてやっています。
2022年02月02日 00:00
2022年02月02日 03:00
2022年02月02日 06:00
2022年02月02日 09:00
2022年02月02日 12:00
2025年04月15日 11:30
2025年04月08日 16:30
2025年04月07日 16:30
2025年04月04日 15:45
2025年03月27日 13:30
2025年02月04日 08:51
2025年02月03日 12:58
2024年11月27日 11:48
2024年11月25日 12:07
2024年11月17日 09:51
2025年03月26日 22:33
2025年03月26日 22:12
2025年03月24日 22:28
2025年03月19日 20:10
2025年03月18日 20:52
2025年04月16日 08:30
2025年03月18日 09:07
2025年03月18日 09:06
2025年03月15日 13:23
2025年02月26日 16:37
2025年04月02日 21:01
2025年04月02日 20:47
2025年04月02日 20:37
2025年04月01日 22:03
2025年04月01日 21:27
2025年04月16日 08:32
2025年03月18日 09:10
2025年03月18日 09:09
伊久間博之さんの投稿
(投稿ID: 516)
Dim gyo
For gyo = 2 To 11
If Range("e" & gyo).Value = "女性" Then
Range("i" & gyo) = "女性です"
Range("j" & gyo) = "ステキですね"
Range("a"&gyo&":j"&gyo).Font.Color = vbRed
とやると
Range("a"&gyo&":j"&gyo).Font.Color = vbRed
の部分が赤くなって怒られます。
2つめの&の前に空白を入れ、
Range("a"&gyo &":j"&gyo).Font.Color = vbRed
カーソル移動するとOKしてくれます。
上2つは入力するときに&の前に空白を
Range("i"&gyo) = "女性です"
Range("j"&gyo) = "ステキですね"
入れなくてもOKしてくれます。
たしか、エクセルマクロは空白とかをたくさん入れても、逆に入れなくても小人ちゃんが認識してくれる、ということだったような…
for next構文のtoの前後にも空白を入れないと認識してくれなかったり、空白が必要なものと不要なものの違いがよくわかりません。
文字色が&もToも黒、と言うことが関係ありそうなのですが、正解はなんですか?
小川 慶一さんのコメント
(コメントID: 1340)
先に、結論を書きます。以下のとおりです。
変数やキーワードの直後のスペースを無くすのはやや危険。
というか、前後にスペースがはいるはずのところで構文エラーになってしまったら、そこがアウトの可能性大。
以下、基礎編レベルの知識ではちょっと難しいかもしれませんが、簡単に解説します。
- - -
実は、「型指定文字」というのがあります。
データ型の指定については発展編1で解説していますので今は深く触れませんが、「gyo&」と書くと、その変数には整数しか入れられない、という意味になります。(「gyo&」と、「&」まで含んだ形でひとつの変数名です)
分かりにくいので「gyo&」を説明の便宜上、「hoge」と置き換えてみます。
すると、いただいたコードの問題の箇所は、以下のようになります。
Range("a"&hoge":j"&gyo).Font.Color = vbRed
これは、 hoge と ":j" との間に結合演算子がないので構文エラーになります。
「gyo &」は、変数gyo と、 & 以降に続くものを結合するという意味になります。
- - -
続いて、for next 構文について。
以下の形について、「to」前後のスペースをなくして考えてみます。
for gyo = 2 to 10
このとき、考えられる構文エラーの理由は以下のとおり。
[1]
2 to10 → 「2」という数値と「to10」という変数があるとみなされる→「2」と「to10」との間に演算子がないので構文エラー。
[2]
2to10 → 「2to10」という変数があるとみなされる→変数名の先頭が数値なので構文エラー。
- - -
ということで。
以下、結論は以下です。
変数やキーワードの直後のスペースを無くすのはやや危険。
というか、前後にスペースがはいるはずのところで構文エラーになってしまったら、そこがアウトの可能性大。
..という解説でOKでしょうか?
まずは以上のとおりです。さらに何かあればご質問ください。
伊久間博之さんのコメント
(コメントID: 1346)
①「gyo&」でひとつの変数としてみなされてしまい、結合演算子がない事になるので赤くなって怒られたということですか。
②for next構文の例ではキーワードと数値の間にスペースがないため、やはりひとつの変数としてみなされて怒られると。
試しに、
Sub to10()
to10 = 2
Range("A1") = to10
End Sub
とやってみたら、「コンパイルエラー:Fuctionまたは変数が必要です。」となりました。
つまり関数と数値とキーワード以外の文字列は変数として認識されてしまう。
また、「Dim=◯◯◯」で宣言しないと機能しない。
また、結合演算子がないので構文エラーになってしまう。
ので変数とキーワードの前後の状態に要注意。
という認識でいいでしょうか?
伊久間博之さんのコメント
(コメントID: 1347)
誤 Dim=◯◯◯
正 Dim ◯◯◯
◯◯◯=◎◎◎
小川 慶一さんのコメント
(コメントID: 1358)
>[1] 「gyo&」でひとつの変数としてみなされてしまい、結合演算子がない事になるので赤くなって怒られたということですか。
>[2] for next構文の例ではキーワードと数値の間にスペースがないため、やはりひとつの変数としてみなされて怒られると。
OKです。
>変数とキーワードの前後の状態に要注意。
>という認識でいいでしょうか?
OKです。
↓ただしこれは、サブプロシージャ名と変数名が同じですね。
変数の宣言もありませんので、いろいろな意味でNGです。
以下の動画も参考にしてください。
https://forum.pc5bai.com/lesson/page/105