エクセルマクロ オンライン講座コメント紹介

コメント紹介
   └ エクセルマクロ・VBA基礎編フォローアップ ベーシック
       └ 各資料ごとに1番からの番号を割り振る。AutoFill機能より便利なマクロ

各資料ごとに1番からの番号を割り振る。AutoFill機能より便利なマクロ

[10445] 2018-08-18 11:30:53 受講生さんからの投稿です。

初めの投稿での質問が下記になります。

「下のマクロを書いた際に、Range("B" & GYO).Valueも繰り返されるので
初め関数を使っていたのですが、資料番号が表に記入されませんでした。
スッテプインで一つずつ確認しても
問題なく実行出来ているように見えるのですが、
どうしてエクセルに反映されないのでしょうか。」

つまり、コメント番号10378で投稿したマクロのRange("B" & GYO).Valueの箇所をコメント番号10443で投稿したマクロのように関数(BANGO)に置き換えるとエクセルに反映されなくなります。このような関数の使い方は出来ないということなのでしょうか。という質問になります。

紛らわしい書き方をしてすいません。
よろしくお願いします。

ーーーーーーーーーーーーーーーーーーーーー
>受講生 さん:

コメント番号10378で投稿されたマクロは以下。
Sub AAA()
Dim GYO
For GYO = 4 To 19
Dim NAME
NAME = Range("D" & GYO).Value
If NAME = "資料A" Then
Range("B" & GYO).Value = 1
ElseIf NAME = "資料B" Then
Range("B" & GYO).Value = 2
ElseIf NAME = "資料C" Then
Range("B" & GYO).Value = 3
End If
Range("C" & GYO).Value = Mid(Range("F" & GYO).Value, 2, 1)
Next
End Sub


そして、今回お送りいただいたファイルのモジュール「Module1」にあったマクロは以下です。

Sub AAA()
Dim NAMAE
Dim BANGO
Dim GYO
For GYO = 4 To 19
NAMAE = Range("D" & GYO).Value
BANGO = Range("B" & GYO).Value
If NAMAE = "資料A" Then
BANGO = 1
ElseIf NAMAE = "資料B" Then
BANGO = 2
ElseIf NAMAE = "資料C" Then
BANGO = 3
End If
Range("C" & GYO).Value = Mid(Range("F" & GYO).Value, 2, 1)
Next
End Sub

 


[10446] 2018-08-18 12:38:18 小川慶一さんからの投稿です。

受講生 さん:

>コメント番号10378で投稿したマクロのRange("B" & GYO).Valueの箇所をコメント番号10443で投稿したマクロのように関数(BANGO)に置き換えるとエクセルに反映されなくなります。
>このような関数の使い方は出来ないということなのでしょうか。という質問になります。

そういうご質問でしたか。

>関数(BANGO)に置き換えると

ここで、用語を間違えています。これは関数ではありません。

>このような関数の使い方は出来ないということなのでしょうか。

上記のとおり、BANGOは関数ではありません。
なので、「このような関数の使い方は出来ないということなのでしょうか」という質問には、回答不能です。

用語を間違えていて、機能への理解もできてない...ということなので。
このタイミングで、以下の動画を復習し、用語とその機能について、ご自身の知識を修正してください。

○基礎講座第1章8 - 変数を使ったプログラム、変数を使う意義
https://online.pc5bai.com/movie/index/25/104/

[a] まずは動画をひととおり見て、用語とその意味を確認してください。

[b] 次に、動画にあわせて、「こびとちゃんシート」を使って、こびとちゃんになったつもりで、一行一行、マクロのコードの内容をシートに反映させていってください。

[c] 上記のワークをしっかりやったあと、さらに、コメント番号10443のマクロを見直してください。

[d] それでもどこがどう問題なのか?が分からなければ、「こびとちゃんシート」を使って(*)、こびとちゃんになったつもりで、一行一行、コメント番号10443のマクロのコードの内容をシートに反映させていってください。

(*)こびとちゃんシートは19行目まではないですが、4行目から9行目まではFor Next構文に従っで実際に作業してください。10行目以降はやらなくてOKです。

[a]-[d] までのどこかで、何をどう勘違いしていたのか?ということについて、すっきり整理して理解できるかと思います。
無事に理解できましたら、[a]-[d] までのどこで問題解決できたか?お知らせください。

[e] もしここまでやっても分からなかった場合は、上記[d]のワークをやった結果のこびとちゃんシート、手書きワークをやりおえた状態のものをお送りください。
PDFファイルでもJPGファイルでもかまいません。スキャンまたは携帯で撮影した画像。どちらでも構いません。
ファイルをお送りいただけたなら、そのファイル、コメント番号10443のマクロを使って解説します。


[a]-[d]のワークは、とても面倒に感じられるかもしれません。

でも、なぜ、講座本編でもわざわざこういうワークをやる時間を取っているのか?というと、それは、こういう手書きワークはとても重要だからです。

それに、多少手書きワークをしたとしても、基礎編フォローの演習問題にチャレンジするのにかかる総時間と比べたら微々たるものですので、ここは面倒でもやってみてください。

漫然とマクロを実行しているだけのときとは比べようのない大きな学びを得ることができるでしょう。


> 初めの投稿での質問が下記になります。
>
> 「下のマクロを書いた際に、Range("B" & GYO).Valueも繰り返されるので
> 初め関数を使っていたのですが、資料番号が表に記入されませんでした。
> スッテプインで一つずつ確認しても
> 問題なく実行出来ているように見えるのですが、
> どうしてエクセルに反映されないのでしょうか。」
>
> つまり、コメント番号10378で投稿したマクロのRange("B" & GYO).Valueの箇所をコメント番号10443で投稿したマクロのように関数(BANGO)に置き換えるとエクセルに反映されなくなります。このような関数の使い方は出来ないということなのでしょうか。という質問になります。
>
> 紛らわしい書き方をしてすいません。
> よろしくお願いします。

 


まずはここから!スマホでも学べる無料動画講座

今なら先着30名限定で無料!定価4,800円の、初心者のためのエクセルマクロ動画講座。
  1. Excel 97~Excel 2016まですべて対応。動画本数20本、総再生時間2時間44分53秒
  2. PC, Mac, iPhone, iPad, Androidのお好みの環境で、いつでも好きなときに学べます。
2004年から10年間述べ3,000名以上に実施した研修の経験と実績を集約した講座です。
いますぐ無料で試してください。

トップへ