オンライン講座 質問と回答

無料・有料のオンライン講座で寄せられたメッセージの一部を紹介致します。

[10414]発展1講座第4章 – For Each構文 イントロダクション3

2018-08-16 11:08:51 受講生さんからの投稿です。

ここにきてDebug.Print の効果がわかった。
今回はどのシートが選ばれたかが分かるという事だ。

For Each構文の動きはなんとく理解した。

いよいよ次にWorkだ。

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[10412]VLookUp関数、Index関数、Match関数より便利なマクロ-該当する行が見つからない場合の処理をアレンジ

2018-08-15 22:23:15 morimotoさんからの投稿です。

false, trueのところがつかめませんで、下のcodeが解説講義の分ですが、(1)でfalseとありますが、falseは右のIDの中で左のIDにないもの(36,44)についてなので、(1)以下のhida,,,を処理するにはfalseでなくtrueにして右のIDの中に左のIDにあるときC列に転記する処理と考えtrueと書くのでないかと思いました(実行したらおかしな結果でした)
また(2)のtrueですが、右のIDの中で左のIDにないものがあればforからexitで抜けて(3)の処理に続けばと考えてしまいました。実行結果がおかしいので理解・解釈がおかしいのはわかりますが、きちんとつかんでおきたいので、(1)がfalse, (2)がtrueとなるところをアドバイスお願いします。
Sub mondai201_01()
Dim hida
Dim migi
Dim mitsuketa
Dim tenkisaki
tenkisaki = 30
For migi = 11 To 21
mitsuketa = False———(1)
For hida = 4 To 29
If Range(“A” & hida).Value = Range(“E” & migi).Value Then
Range(“C” & hida).Value = Range(“F” & migi).Value
mitsuketa = True——-(2)
Exit For
End If
Next
If mitsuketa = False Then——–(3)
Range(“A” & tenkisaki).Value = Range(“E” & migi).Value
Range(“C” & tenkisaki).Value = Range(“F” & migi).Value
tenkisaki = tenkisaki + 1
End If
Next
End Sub

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[10409]発展1講座第4章 – 論理演算子 解説

2018-08-15 15:12:55 受講生さんからの投稿です。

演算子 And Orの具体的な使い方を学んだ
Notは Notで書かれた以下の条件を満たしていれば処理を行わず、満たしていなければ処理をするときに使う。
意外とこのNot 自分が作りたいマクロで使えそうな気がする。

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[10404]発展1講座第4章 – 論理演算子 イントロダクション

2018-08-14 12:53:22 受講生さんからの投稿です。

いよいよ4章。
比較演算子の復習と論理演算子を学んだ。

論理演算子
And(積集合)左の条件、かつ、右の条件が合っていれば True、
       そうでなければ False を返す

Or(和集合)左の条件、もしくは、右の条件が合っていれば True、
      そうでなければ False を返す

Not(補集合)条件が合わなければ True、
       そうでなければ False を返す

まだイメージできないが、この論理演算子で条件設定がグッと細かくできそうで楽しみ。

[ 続きを読む ]  返信件数:2件  [ 動画を見る] 

[10403]発展1講座第3章 – マクロの自動記録 個人用マクロブック

2018-08-14 12:19:18 受講生さんからの投稿です。

個人用マクロブック
お気に入り?使い回しができそうなマクロを保存しておく場所として使うところかな。

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[10402]発展1講座第3章 – マクロの自動記録 並べ替え

2018-08-14 12:11:29 受講生さんからの投稿です。

「Header:=xlGuess」はそのまま放置しない
かならず「xlYes」データの先頭行はタイトルにする
か   「xlNo」データの先頭行もデータとする
に書き直す。
小文字で書いて、正しいスペルかもチェックすること。

「xlGuess」は、「小人ちゃんに任せる」という意味。
恐ろしい。

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[10399]発展1講座第3章 – マクロの自動記録 途中改行2

2018-08-13 07:26:23 受講生さんからの投稿です。

[Back], [Delete], [End] と [Space], [ _ ], [Enter] のWork
理解してできました。キーボードを見てしまうので
見なくてもできるようにしたいですね。

途中改行したときのレイアウト、一行目ですぐTabキーを押すのはそのあとの改行がとてもすっきりして素敵ですね。
使いこなせるようになります!

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[10398]発展1講座第3章 – マクロの自動記録 途中改行1 入力支援機能

2018-08-13 07:14:17 受講生さんからの投稿です。

[Back], [Delete], [End]を唱えまくりました。
ショートカットの説明を聞き終わって振り返ると忘れていた。
はやり、繰り返しは大事ですね。

しかし、、、 Ctrl+J の手動補完機能には驚いた!これは使えますね。

あと、大文字・小文字を普段から意識することで
入力チェックにも役立つことを学びました。

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[10397]発展1講座第3章 – マクロの自動記録 アンダースコア

2018-08-13 06:59:49 受講生さんからの投稿です。

「 _」スペースアンダーバーを入れると
マクロを途中で改行することができる。

一行が長くなったり、編集に合わせてマクロのレイアウトを調整したりするときに使うと便利。

次回はWork。実際に練習しよう。

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[10396]発展1講座第3章 – マクロの自動記録 カラーインデックス

2018-08-12 14:56:30 受講生さんからの投稿です。

カラーインデックス
色には背番号がある。
面白いですね。

記憶にとどめておきます。

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[10395]発展1講座第3章 – マクロの自動記録 フォントの設定

2018-08-12 14:51:34 受講生さんからの投稿です。

Withブロック を学習した。
With Selection.Font では
改行された .以降は Selection.Font が省略されていることを知っておく。
作業時間を効率化するためにも、
「コメントブロック」を上手に使う。

[ 続きを読む ]  返信件数:2件  [ 動画を見る] 

[10394]発展1講座第3章 – マクロの自動記録 オートフィルタ2

2018-08-12 14:27:53 受講生さんからの投稿です。

自動マクロでよく登場する指示語は修正する。
Activesheet → Worksheets(“sheet2”)  マクロを動かしたいシート
ActiveWorkbook → Workbooks(“Book1.xls”) マクロを動かしたいBook
ActiveCell → Range(“A2”) マクロを動かしたいセル
Selection → Range(“A2”)マクロを動かしたいセル

指示語を曖昧にしない!

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

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

2018-08-12 07:52:42 受講生さんからの投稿です。

返信ありがとうございます。

>今、僕の環境で試しました。
>が、きちんと動作しますね。。
>これとは別のマクロのことでしょうか。
>でしたら、添削して欲しいマクロを別送してください。

いえ、下記のマクロのことで間違いないです。
きちんと動作しましたか、、、
先生に質問する前にも、エクセル、パソコン自体の再起動をかけて
試して見たのですが、きちんと動作せず、
先ほど、もう一度、先生にご指摘頂いた点を修正して
実行しましたが、やはりB列への反映がされませんでした。

>[1] Dim NAME は、 For 文より前に持っていく

for文の中にいつもDIM XXXを入れていました。
説明を頂いて初めて、よく考えてみればそうだなと気づきました。
ありがとうございます。

>[2] 変数名は NAME でなく他の言葉推奨

もう一度、変数を活用するときの注意点を復習してみます。
ありがとうございます。

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


今、僕の環境で試しました。
が、きちんと動作しますね。。

これとは別のマクロのことでしょうか。
でしたら、添削して欲しいマクロを別送してください。

いただいたマクロについては、以下の2点修正したいですね。
[1] Dim NAME は、 For 文より前に持っていく
[2] 変数名は NAME でなく他の言葉推奨

[1] は、いただいたマクロのような書き方だと、くり返しの回数だけ変数を作り直すことになります。僕の提案の方法なら、一度作った変数の中身を差し替えていくだけ。
というか、「同じ名前の変数を何度も生成し直す」ということ自体、プログラミングでは推奨されません。

[2] については、基礎編本編第1章「基礎講座第1章9 – 変数を活用するときの注意点」をまずは参照。
https://online.pc5bai.com/movie/index/25/105/

英単語一語の変数名だと、実在するプロパティ等とかぶる危険性が高いです。(そして、実際、かぶってます)

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[10381]発展1講座第3章 – マクロの自動記録 オートフィルタ1

2018-08-11 13:47:50 受講生さんからの投稿です。

自動記録を実際にやりながら学習しました。

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[10380]発展1講座第3章 – マクロの自動記録 イントロダクション

2018-08-11 13:38:37 受講生さんからの投稿です。

詳細なマクロを知らなくても
マクロの自動記録をすることでマクロを作ることができる。
が、そこには小人ちゃん独特の書き方があるので
そこは理解する必要がある。

今日から第3章。楽しみだ。

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[10379]発展1講座第2章 – メソッド2

2018-08-11 13:27:34 受講生さんからの投稿です。

メソッドのWork 実際に手を動かすことで理解しやすい。

プロパティとメソッドの違いを学習した。
メソッドは、実行することである。
・=がつかない
・動詞がくる Open, Close ,Delete ,Select,

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

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

2018-08-11 05:08:33 受講生さんからの投稿です。

資料名が1、2、3と順番に並ばないことがある可能性を考えたため
<>という発想がなく、先生の解説を見て目から鱗でした!
下記マクロを書いて、自分では出来た!と思っていたので、
問題の意図が掴めていなかったことに少しショックでした。笑

教材で<>を見た時、この比較演算子はどんな時に使うんだろうと
思っていましたが、こういう使い方ができるんですね。
マクロがよりシンプルになるので、
このパターンをきちんと体得できるように
繰り返し練習したいと思います。

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

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

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[10374]発展1講座第2章 – メソッド1

2018-08-10 17:34:44 受講生さんからの投稿です。

メソッドを理解するWork

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[10373]発展1講座第2章 – End プロパティの使い方

2018-08-10 17:30:20 受講生さんからの投稿です。

Endプロパティは 凄すぎる!
一行マクロを書き足すだけで、どのシートにも正確に使えるマクロになる!

Range(“A最終行”).End(xlUp).Row
覚える!

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[10372]発展1講座第2章 – プロパティ Offsetの使い方

2018-08-10 17:16:02 受講生さんからの投稿です。

Offset を使うと
For Next構文 を使った時
横方向に連続処理が出来る。

感動。

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[10371]発展1講座第2章 – プロパティ Offset

2018-08-10 17:08:35 受講生さんからの投稿です。

Offset オフセットのワーク間違えずに出来た。
分かるって嬉しい。

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[10366]連想配列2-Dictionaryオブジェクトの使用例

2018-08-09 23:09:25 mokoさんからの投稿です。

>戻り値は、「Variant()」でしたよね。
つまり、戻り値は、「Variant型」でなく、「Variant型の配列」です。こういうところ、しっかり詰めてください。

型を調べたときにVariantにカッコがついているのが不思議だったのですが、配列という意味だったのですね。
理解しました。ありがとうございます。

>要は、「そういう言語の仕様だ」ということです。(*)

redimについても疑問もすっきりしました(^^♪
そっちのほうが都合がよいということですね。

配列はまだ全然慣れていなくて、どういうときに使うとよいのか?とさぐりさぐりテストしている段階です。
自信をもって使えるようになるまで、まだ時間がかかりそうですがおもしろがりつつ頑張ります!


[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[10365]発展1講座第5章 – モジュールレベル変数の操作

2018-08-09 21:31:49 受講生さんからの投稿です。

似てると言えば、ソートの部分も似ているなぁと思い、G列とA列でソートするために、ソートキーをモジュールレベル変数として宣言してみました。

Option Explicit

Dim Retu As String
Dim Sortkey As String

Sub All()

    Retu = "A"
    Call Numbering
    Sortkey = "G"
    Call Sorting
    Retu = "H"
    Call Numbering
    Sortkey = "A"
    Call Sorting
    
End Sub

Sub Numbering()

    Dim Gyou As Long
    
    For gyou = 2 To Range("B" & Rows.count).End(xlUp).Row
        Range(Retu & Gyou).Value = Gyou - 1
    Next
    
End Sub

Sub Sorting()

    Range("A1:H21").Sort _
        key1:=Range(Sortkey & 1), _
        order1:=xlAscending, _
        Header:=xlYes

End Sub

便利だなぁ。

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[10364]発展1講座第5章 – モジュールレベル変数

2018-08-09 21:01:14 受講生さんからの投稿です。

これは便利ですね。
全ての変数を「モジュールレベル変数」として宣言しちゃえば、個々のサブプロシージャでは変数を宣言しなくて良いってことですから。
ただ、変数名をキチンと把握していないと、おかしな動きをするマクロのデバックに相当苦労する(変数を1つ1つ追わないとミスに辿り着けない)ようなイメージがあります。
ところで、こびとちゃんは、どのタイミングでモジュールレベル変数を開放するのでしょうか?

[ 続きを読む ]  返信件数:5件  [ 動画を見る] 

[10348]発展1講座第2章 – プロパティ 値として表現できるデータ

2018-08-09 04:30:21 受講生さんからの投稿です。

シートを一気に色を変えるあたりなんか”発展編”って感じがしますね。
「.Count」選んだ範囲の合計数を出すプロパティ
「.Row」セルが何行目にあるかを教えてくれるプロパティ
「.Column」セルが左から数えて何列目にあるかを教えてくれるプロパティ 数値のして返してくるので覚えておく!

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[10347]発展1講座第2章 – プロパティ 同レベルのオブジェクト

2018-08-09 04:12:25 受講生さんからの投稿です。

セルとセル
シートとシート
隣にあるものもプロパティとなる。
右隣のシートを指定するときは、”.Next”
左隣のシートを指定するときは、”.Previous” を使う

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[10346]発展1講座第2章 – プロパティ 上位のオブジェクト

2018-08-09 04:01:13 受講生さんからの投稿です。

上位のオブジェクト
セル なら Sheet
Sheet なら BOOK を指定するときは、
「.Parent」を使う。

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[10345]発展1講座第2章 – プロパティ 従属要素のオブジェクト

2018-08-09 03:50:46 受講生さんからの投稿です。

プロパティについて学習した。

ピリオド.(~の)より後ろが、プロパティである。

Range(“B4”).Value の場合 
 Value(値) がプロパティ

Range(“B4:B8”).Countの場合
 Count(合計数)がプロパティ

Worksheets(“sheets2”).Range(“B5”)の場合
 Range(“B5”) ”B5のセル”がプロパティとなる。これを従属要素という。

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[10344]発展1講座第2章 – コレクション(インデックス)の具体例

2018-08-08 13:33:49 受講生さんからの投稿です。

インデックスを名前で指定すると
 シート名やShapes名?を指定することができる。
が、
インデックスを数字で指定すると
 シートであれば、左のシートから数えた数
 ShapesであればShapes番号?作成した順?に選ばれる。
間違いをしないためにも、”名前”で指定する方が良い。

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[10343]発展1講座第2章 – コレクション(インデックス)

2018-08-08 13:20:26 受講生さんからの投稿です。

オブジェクトを指定する時は
コレクション(インデックス)で指定する。

インデックスには、名前や数字を入れるが
基本名前を入れて指定することを覚えておく。

[ 続きを読む ]  返信件数:3件  [ 動画を見る] 


各講座ごとのメッセージを見る場合はこちら

 

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

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

トップへ