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

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

[11396]表を解析して1行のリストを作る、1行のリストを解析して表にする(その1)

2019-05-10 05:52:12 受講生さんからの投稿です。

小川先生、
お世話になっております。カンマの使い方で1つ確認させてください。解説を見る前に自分で解いた時に、カンマを表示する時にコードとしてRange(“F2”).Value = Range(“A2” & “,”).Value としたのですが、実行時エラー1004となり、動きませんでした。
Range(“F2”).Value = Range(“A2”).Value & “,”としたら可動しました。別の会の授業の中でのコロンを使用したRange(“C2” & “:” & “E2”).Value = 8のコードを参考に上記のようなコードとしたのですが、エラーがでました。確認したいのですが、これはどこがエラーの原因なのでしょうか。よろしくお願いいたします。  

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

[11386]出現回数を数える。CountIf関数がやっていることをマクロで書くと?

2019-05-05 10:01:47 藤村英夫さんからの投稿です。

一回目に見たときに感動したのですが、土日だけ復習しているとすぐに忘れてしますので、思い切ってスマホを大型に買い替えて、ゴールデンウィーク明けからは、電車のなかでこの動画を通勤中に見るようにします。

ところで、質問ですが、ドットバリュー(.value)は入力しなくても、
今のところ支障なく作動するようですが、この先 発展編にすすむとまずいことはでてきますか? 書店で購入した本が、range(“A1”).value等の
入力の場合、ドットバリュー(.value)は打たなくても問題がないという記述があったので、今まで入力していません。

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

[11334]If文とForNext構文を組み合わせる

2019-04-11 14:45:18 受講生さんからの投稿です。

お世話になります。ご無沙汰しております。
For Nextステートメントについて質問があるのですが、For NextステートメントはRange(“A” & i )のように書いてはいけないと今日言われました。
Cells( 1 , i ) のように書きなさいと。
理由としてはRangeでかくと
① 処理が遅い
② そんなコードを書いていると笑われる
との事です。

私は小川先生の講座で1年以上VBAについて勉強してきましたのでこの書き方に違和感はありませんでした。
ちなみにCellsの書き方も知っています。
そこで、小川先生がこの書き方でやってきているのは初心者に理解しやすいようにですか?上級者向けの講座ではCellsを使っているのでしょうか?
Rangeの書き方でも行の処理ならできるので良いかなと思っていたのですが今日、思いっきりその書き方はダメだよと言われました。
と、言うのも現在、東京都が行っている職業訓練というものでExcel VBA実践コースというのを受講しています。
2月から3ヶ月間のコースでまもなく終わりを迎えます。
その講師の先生から言われました。
その先生の教え方はものすごくわかりにくく、受講者のほとんどが授業を聞かずに自分たちでテキストを読み込んだり、ネットで調べながら勉強していたほどお世辞にも優秀な講師とは言えないです。
どこがダメか具体的に教えて欲しいといっても処理速度が遅いのと田中先生(Office田中)が言っていたからとしか説明してもらえませんでした。
私の中では信頼の置けない講師の方なので腑に落ちなくて・・・。
小川先生に直接質問させて頂きました。
今後もっと複雑なコードを書くようになったらRangeでの書き方はしなくなっていくのでしょうか?
ご教授、お願いいたします。

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

[11258]表を解析して1行のリストを作る、1行のリストを解析して表にする(その2)

2019-03-14 12:54:42 jinoseさんからの投稿です。

[感想]
これは、、、難しい!初期化、変数を増やすタイミング、for next構文の最初と最後の処理、条件分岐等。。。まだ身についていないところの総復習が必要と感じた。

まずはフォローアップ ベーシックを1周できました。わかりやすい講義をありがとうございました!!!

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

[11233]複数条件を組み合わせた条件分岐

2019-03-09 17:36:41 藤村英夫さんからの投稿です。

これはスゴイ!! 脱帽です!! for next 構文のハナコのステップは想像が届きますが、このIF then 構文の組合せの作法は思いもつきません。私、いままで二重仮定のIF then構文は、IF とend ifの組合せがよくわからなくなるのです。これは、非常に参考になりました。

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

[11228]出現回数を数える。CountIf関数がやっていることをマクロで書くと?

2019-03-07 19:37:18 マサラさんからの投稿です。

マクロの実行に伴って変数の値が推移する。
講義中で行われていたように、変数の値を丁寧に追いかけることで理解につながりました。

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

[11207]残業時間がいちばん多い従業員の情報を出力する。Max関数、Min関数より便利なマクロ

2019-02-25 22:17:22 jinoseさんからの投稿です。

[感想]
「勝ち抜き戦・暫定王者・挑戦者」という用語を用いた説明が大変わかりやすく、すんなりと理解出来ました!

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

[11180]出現回数を数える。CountIf関数がやっていることをマクロで書くと?

2019-02-17 21:36:21 jinoseさんからの投稿です。

[感想]
最初は理解できなかった(for next構文の中にfor next構文)が、復習するにつれだんだんとわかってきた。リアルでの例えがわかりやすくて納得できました!

[質問]
countif関数で=COUNTIF(C:C,”=” & E4)をなっておりますが、第2引数に”=” & をつけるのはなぜでしょうか(E4だけで動くと思うのですが)?

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

[11156]複数条件を組み合わせた条件分岐

2019-02-14 06:57:42 jinoseさんからの投稿です。

[感想]
ハナコのステップの凄さを再認識しました。このマクロを上から書いたら訳わからなくなると思いました。

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

[11144]If文とForNext構文を組み合わせる

2019-02-13 18:49:03 jinoseさんからの投稿です。

よい復習になりました!

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

[11037]文字列を加工してデータ転記する(その3)

2019-01-30 05:59:29 受講生さんからの投稿です。

お世話になります。問題3について質問させてください。
下記のようにコードを書きました。小川先生と同じように書いたつもりですが、動きません。実行時エラー5と表示されます。そこで試しにRange(“C” & gyo).Value = Left(name, slush – 1)をRange(“C” & gyo).Value = Left(name, slush )としたところ、動くようになりました(/は入ってしまいますが)。今回のコードにはもう1つ問題があります。半角空欄を認識していません。なぜダメなのかお手数ですが、ご回答お願いいたします。

sub renshu2()
Dim slush
Dim name

Dim gyo
For gyo = 2 To 11
name = Range(“b” & gyo).Value
slush = InStr(name, “/”)
If name = 0 Then
slush = InStr(name, ” “)
End If
Range(“C” & gyo).Value = Left(name, slush-1)
Range(“D” & gyo).Value = Mid(name, slush + 1)

Next
End Sub

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

[11036]表を解析して1行のリストを作る、1行のリストを解析して表にする(その1)

2019-01-29 21:17:41 ゲストさんからの投稿です。

解答のgyosha = gyosha & “,” & Range(“A” & gyo).Valueの意味がいまいちわかりません。最初のgyoshaの変数を定義するのに、gyosya=gyosya…とそれまでにgyosyaが出てこないのに、どういう意味でしょうか。
xを宣言するのにx=x+yだとしたら、x-x=y、0=yのようにならないのでしょうか。どうも頭硬いようです。
ちなみに私は下記でやってみました。あまり格好良くないでしょうか。

Sub kaisya()
Dim gyosh
Dim gyo
gyosh = Range(“a” & 2).Value
For gyo = 2 To 11
gyosh = gyosh & “,” & Range(“a” & gyo).Value
Next
Range(“f2”).Value = gyosh

End Sub

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

[11032]複数の記号に挟まれた文字列を取り出す

2019-01-29 07:10:40 ゲストさんからの投稿です。

Replace 関数?
過去に習いましたでしょうか?

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

[10906]とびとびに存在するデータを拾って加工する

2019-01-09 06:40:34 受講生さんからの投稿です。

お世話になります。この正月にだいぶ進捗できました。1つ確認させてください。
Range(“C1”).Value = Range(“A1” ).Value & Range(“A2” ).Value ですが、これをまとめてRange(“C1”).Value = Range(“A1” & “A2”).Value 左記のように書いたのですが、実行時エラー1004と出ました。これは何故動かないのでしょうか。宜しくお願いいたします。

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

[10863]勘定項目ごとに合計額を算出する。SumIf関数がやっていることをマクロで書くと?

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

sumif関数の方法は理解できました。sumifs関数もマクロで実現可能ですか?

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

[10846]条件に一致するデータを別シートに転記する

2018-12-25 23:06:06 受講生さんからの投稿です。

Worksheets(“元データ”)やWorksheet(“要注意リスト”)の元データや要注意リストの部分も変数にして当てはめることは可能ですか?シート名が変わったりしても書き変えなくてすむように、motosheet=range(“A1”).valueみたいにできますか?

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

[10826]出現回数を数える。CountIf関数がやっていることをマクロで書くと?

2018-12-22 15:32:30 ゲストさんからの投稿です。

小川先生
こんにちわ
[2]の回答を作ったのですが、このような形でもいいのでしょうか?
Sub mondai2()
Dim siso
Dim kanpyo
Dim nomimono
Dim gyo
For gyo = 4 To 18
If Range(“C” & gyo).Value = “しそ巻き無料” Then
siso = siso + 1
ElseIf Range(“C” & gyo).Value = “飲みもの無料” Then
nomimono = nomimono + 1
ElseIf Range(“C” & gyo).Value = “かんぴょう巻き無料” Then
kanpyo = kanpyo + 1
End If
Next
Range(“F4”).Value = siso
Range(“F5”).Value = nomimono
Range(“F6”).Value = kanpyo
End Sub

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

[10632]文字列を加工してデータ転記する(その2)

2018-10-06 12:20:47 シドニーさんからの投稿です。

小川先生 
お世話になっております。解説見る前に過去の動画を見ながら作成していますが、模範解答のようにきれいにならないこともあります泣
問題4で下記のように作成しましたが、無駄が多いように感じています。(マクロ自体は、問題無く動きましたが…)
マクロを書くときに、シンプルに考える工夫などありますか。よく物事を複雑に考えすぎると言われてしまうので…

Sub mondai4()
    Dim jusyo
    Dim ku
    Dim si
    Dim gyo
    
    For gyo = 2 To 11
        jusyo = Range("C" & gyo).Value
        ku = InStr(jusyo, "区")
        si = InStr(jusyo, "市")
        If ku > 0 Then
            Range("F" & gyo).Value = Left(jusyo, ku)
            Range("G" & gyo).Value = Mid(jusyo, ku + 1)
        Else
            Range("F" & gyo).Value = Left(jusyo, si)
            Range("G" & gyo).Value = Mid(jusyo, si + 1)
        End If
    Next       
End Sub

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

[10628]文字列を加工してデータ転記する(その3)

2018-10-03 21:26:22 ゲストさんからの投稿です。

小川先生

以下の件かなり参考になりました。
仕事上、ばれてしまうことがあるので朝、名前変数等急いで加工してしまいました。(まあそれだけではないですがまだまだ勉強の足りなさを感じております。)

もう一度書かれていた件は振り返り学習をしようと思います。
まだまだ発展まで行きませんが、確実に勉強していきたいと思っております。

丁寧な対応ありがとうございました。

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

[10621]文字列を加工してデータ転記する(その3)

2018-10-03 06:38:15 ゲストさんからの投稿です。

エラーが出たのでもう一度送ります。

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

[10613]条件に一致するデータを別シートに転記する

2018-10-01 21:04:01 シドニーさんからの投稿です。

自分でマクロが書けるようになり成長を実感しています!
前回の問題で勉強したので、今回の問題は何とか解けました!
ただ、小川先生が言っていた、やってはいけない書き方(worksheetsの記述を片方省く)を見事にやってしまい、マクロが思うように実行されず、修正に時間がかかりました(笑)
マクロを書くときにやってしまいがちなミスも学べるので、非常に勉強になります。

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

[10601]文字列を加工してデータ転記する(その3)

2018-09-28 22:54:42 受講生さんからの投稿です。

この講座を作っていただいてありがとうございます!っていうぐらいわかりやすく、何回も見直してます。

今回の質問は、文字が入った数値ex(13l)(じゅうさんパイプ)を数値のみの(13)にしたい場合うまくinstr関数left関数にしてもうまくできません。

なにが原因かそして改善策をどうしたらいいのかおしえてください。
ちなみにQRコードを読んだときに区切りとして出てくる”l”です。
もしかしたら”パイプ”と読まないのかもしれませんがこの区切りをなくし数値のみにしたいと思ってます。
よろしくお願いいたします。




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

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

2018-09-11 15:37:50 受講生さんからの投稿です。

返信が遅くなってしまい申し訳ありません。
トンチンカンな質問に対して丁寧に指導いただき、ありがとうございます。

[a]の基礎講座第1章8と9を見直したところ、自分の間違いに気がつきました。格納された変数は右辺で利用される。左辺に変数を持ってくるということは、変数を格納するということであり、私がIF構文ないでやっていたことは、一度格納したBANGOという変数の内容を変更していただけだと、ハッとしました。よくよく冷静になって自分のマクロを見れば明白な間違いなのに、基礎フォローアップベーシックも最終にさしかかるにつれて、少しずつできるようになってきた楽しさと自信から、一度学んだ基礎の知識を置き去りにして、練習問題を解いていたように思います。基礎を再確認するためにも、自分の間違えたマクロを元に小人ちゃんシートに反映もさせていきました。小人ちゃんシートを使うと自分の書いたマクロをキチンと一つずつ理解しながら、反映ができるので、とても良かったです。基礎ができていないことを先生にご指摘いただき、ここで改めて基礎の大切さに気づけて本当に良かったです。ありがとうございました。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

[10564]表を解析して1行のリストを作る、1行のリストを解析して表にする(その2)

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

———————–
Sub XXX()
Dim kuiki
Dim gyosha
gyosha = 1
Dim gyo
For gyo = 2 To 27
If Range(“A” & gyo – 1).Value <> Range(“A” & gyo).Value Then
gyosha = gyosha + 1
Range(“E” & gyosha).Value = Range(“A” & gyo).Value
Range(“F” & gyosha).Value = Range(“B” & gyo).Value
kuiki = Range(“C” & gyo).Value & “地区”
Else
kuiki = kuiki & “,” & Range(“C” & gyo).Value & “地区”
End If
If Range(“A” & gyo).Value <> Range(“A” & gyo + 1).Value Then
Range(“G” & gyosha).Value = kuiki
End If
Next
End Sub
————————-
今回の2つ目の問題を↑のように解いてから動画を見ました。
このマクロであれば最初と最後の処理を必要としないので良いような気もするのですが、なんとなく格好が悪い気もします。
最初と最後の処理をするマクロを自分で導くのは正直自分には難しそうと尻込みしてしまいますが、自分で導くためのプロセスを順を追って動画で紹介して下さっているので、とても勉強になりました。何回もこの動画を見直して練習したいと思います。

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

[10557]文字列を加工してデータ転記する(その3)

2018-09-09 11:43:05 Matsumotoさんからの投稿です。

[9]で何度も練習してからすぐに解いたので、スラスラと回答できました。
復習問題は、きちんと理解できたか確認できるので、
解いていて楽しいです。

次々新しい道具を欲しがる前に
少ない道具を使いこなす(考えずに体が動く)ことを目指します。

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

[10556]文字列を加工してデータ転記する(その1)

2018-09-08 17:04:44 Matsumotoさんからの投稿です。

住所分割のマクロ久々です。
本編で学習から約2週間たっていたので
記憶も朧でしたが、回答できました。

スラスラとは程遠く、
記憶を呼び起こすように一行ずつ動作確認しながらですが、
最終的に動いたときの喜びは大きいですね。

ただ、絶対的な練習量が少ないので、
何度も復習=マクロを書いて、
問題を見た瞬間に体が動くようにしたいです。
(九九のようにですよね)

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

[10551]とびとびに存在するデータを拾って加工する

2018-09-08 07:01:29 Matsumotoさんからの投稿です。

[1]の回答を聞いてからは[2]は途中まで解けましたが、案の定184回までしか転記できず、特集記事は見逃しました。

そこで質問です。
今回は見本回答がE列にあること、転記データが「第●回」で始まるので、不足分があることにすぐ気が付きますが、実務でデータ総数が多い、小川先生はどうしますか?

まずマクロの実行確認として最終行まで転記されているかを確認し、最終行と違ったら⇒for bangou =1 to ●の「●」の範囲が足りないことを推測し、例えば適当に10足したりしますか?

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

[10550]条件に一致するデータを別シートに転記する

2018-09-06 23:36:34 Matsumotoさんからの投稿です。

問題5を何度か練習してからヒントを見てチャレンジしたところ、
動画を見る前に回答できました!!
うれしいです!

ただ、タイプが遅い&ミスが多いため時間がかかります。
小川先生のお話にある「体が動かせる」はとても重要ですね。

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

[10541]出現回数を数える。CountIf関数がやっていることをマクロで書くと?

2018-09-02 14:38:52 Matsumotoさんからの投稿です。

答えを見るまで自力では解くことができませんでした。
一気に難易度が上がった感覚があるのですが、
おそらく基礎編の理解が不十分だからなのだと思います。

先生の言葉にあったように、回答を鵜呑みにしてとにかく練習を繰り返そうと思います。フォローアップ講座を進めながら、同時並行で本編の復習を開始します。

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

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

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

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


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

 

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

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

トップへ