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

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

[8937]住所情報を都道府県から市区町村レベルで細かく分割する

2017-09-26 13:50:20 金子 伊智郎さんからの投稿です。

問題[2]ですが、B11="東京都町田市○×123-1", B12="福島県郡山市○×123-1" などと入れてテストしましたが前者ばNG,後者はOKでした。
ですので若干改修してみました。
他にもうまくいかないケース(千葉県市原市など)は多々あると思いますが
このセンテンスでは全パターンを網羅するマクロを作成する(=品質を高める)のが目的ではないと理解しておりますのでこれで良しとします。

Sub bunkatsu2()
    Dim gyo
    Dim todofuken_idx
    Dim shikugun_idx
    Dim jyusho
    
    For gyo = 2 To 12
        jyusho = Range("B" & gyo).Value
        If Left(jyusho, 3) = "東京都" Then
            todofuken_idx = Len("東京都")
        ElseIf Left(jyusho, 3) = "北海道" Then
            todofuken_idx = Len("北海道")
        ElseIf Left(jyusho, 3) = "大阪府" Then
            todofuken_idx = Len("大阪府")
        ElseIf Left(jyusho, 3) = "京都府" Then
            todofuken_idx = Len("京都府")
        ElseIf InStr(jyusho, "県") > 0 Then
            todofuken_idx = InStr(jyusho, "県")
        End If
        Range("C" & gyo).Value = Left(jyusho, todofuken_idx)
    
        If InStr(todofuken_idx + 1, jyusho, "町田市") > 0 Then
            shikugun_idx = InStr(jyusho, "町田市") + 2
        ElseIf InStr(todofuken_idx + 1, jyusho, "村") > 0 Then
            shikugun_idx = InStr(jyusho, "村")
        ElseIf InStr(todofuken_idx + 1, jyusho, "町") > 0 Then
            shikugun_idx = InStr(jyusho, "町")
        ElseIf InStr(todofuken_idx + 1, jyusho, "区") > 0 Then
            shikugun_idx = InStr(jyusho, "区")
        ElseIf InStr(todofuken_idx + 1, jyusho, "市") > 0 Then
            shikugun_idx = InStr(jyusho, "市")
        ElseIf InStr(todofuken_idx + 1, jyusho, "郡") > 0 Then
            shikugun_idx = InStr(jyusho, "郡")
        End If
        
        Range("D" & gyo).Value = Mid(jyusho, todofuken_idx + 1, shikugun_idx - todofuken_idx)
        Range("E" & gyo).Value = Mid(jyusho, shikugun_idx + 1)
    
    Next

End Sub

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

[8934]サポートの目的と方法について

2017-09-25 21:30:07 長沼良和さんからの投稿です。

小川さま
ご返信ありがとうございます!
とてもうれしいです。
facebookのグループのURLをいただき感謝いたします。
しかし、何か設定されているようで、
「このコンテンツは現在ご利用いただけません。
このリンクは有効期限切れとなっているか、ページの設定により閲覧できなくなっている可能性があります。」
というエラーが表示されて入れませんでした。
承認いただくか設定を変更していただけると幸いです。
ちなみに、私のfacebookページです。
https://www.facebook.com/yoshikazu.naganuma
どうぞ、よろしくお願いいたします。

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

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

2017-09-25 14:11:10 金子 伊智郎さんからの投稿です。

小川さん お世話になっています。
時間を見つけてフォローアップを進めております。
問題[3]について列を移動していく際にどうしようか考えておりましたが
これまでの各動画のコメント欄でoffsetを使用している方がいらっしゃったので利用してみました。

Sub zangyo_syukei2()
    Dim gyo '行番号
    Dim col_num '列オフセット
    Dim target_month '該当月
    Dim saikou_name '最高値データの名前
    Dim saikou_month '最高値データの月
    Dim saikou_zangyo '最高値データの値
    Const retsu_start = "C" '開始列
    Const retsu_name = "B" '名前列
    Const month_gyo = "5" '月タイトル行
    
    '1月から6月まで列を移動しながらデータ走査
    For col_num = 0 To 5
        '該当月をセット
        target_month = Range(retsu_start & month_gyo).Offset(0, col_num).Value
        '行方向にデータ走査
        For gyo = 6 To 33
            If Range(retsu_start & gyo).Offset(0, col_num).Value > saikou_zangyo Then
                '最高値データが更新される毎に 名前、月、残業時間を更新
                saikou_name = Range(retsu_name & gyo).Value
                saikou_month = target_month
                saikou_zangyo = Range(retsu_start & gyo).Offset(0, col_num).Value
            End If
        Next
    Next
    
    Range("K4") = saikou_name
    Range("L4") = saikou_month
    Range("M4") = saikou_zangyo
End Sub

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

[8922]複数の表の間でのマッチング。VLookUp関数がやっていることをマクロで書くと?

2017-09-24 17:31:54 受講生さんからの投稿です。

左の表と右の表の変数を作ることが基本
IDの一致は理解できた。
それをIF文で作る

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

[8921]ElseIfを使った条件分岐

2017-09-24 06:31:54 横山 知明さんからの投稿です。

VBEを矢印で動かすように意識してやってます。
質問です。
 シート→VBE
 VBE→シート間の移動は、
alt+Tabキー以外で、何かありますか?

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

[8920]サポートの目的と方法について

2017-09-23 23:40:18 長沼良和さんからの投稿です。

ガラパゴスタディー オンライン講座
ご担当者様

いつもお世話になっております、長沼と申します。
先日、「イヤでもWindowsとエクセルの操作が早くなるワークショップ」
に申し込み、早速昨日から勉強しはじめています。

さて、ダイジェスト版の動画を観ていてワークをやろうとしています。

「【動画20】 サポートの目的と方法について」
のところで、毎日報告するとあるのですが、
冒頭でfacebookに書き込んでくださいという旨のことをおっしゃっていたので、
そのfacebookのURLを教えていただけないでしょうか。
また、報告するシステムがあるようでしたらご教示いただけますと助かります。

はじめたばかりなので、後の方の動画で紹介されていたら申し訳ございません。

どうぞ、よろしくお願いいたします。

長沼

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

[8919]エクセルマクロの全体像

2017-09-23 22:31:48 受講生さんからの投稿です。

過去にVBAの入門サイトを見たことはあるのですが
それらと比べてとてもわかりやすかったです。

マクロやVBAの大きなメリットは時間効率の向上だと思うので
それが目に見えてわかる動画を選択しているという点だけでも、テキストと画像による解説とは大きく違う気がします。

続きの動画も拝見します。

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

[8918]重複しないリストを作成する(並べ替えを行い、最後に元に戻す)

2017-09-23 18:23:48 浦山大さんからの投稿です。

小川先生
添削頂きましてありがとうございます。
自分の書いたコードと小川先生のコードを見比べてみました。

>'↓丁寧にやるなら、以下のとおり、range("xx") の手前に wFm. をつけま
>す。でないと、アクティブシートが wFm でないときに誤動作する可能性
>が高いです。
> ' (「並べ替え対象は wFm で、諸条件の設定はアクティブシート」とな>ってしまうため)
> ' シートが1枚しかないか、このマクロ実行時には絶対に
>worksheets("main") がアクティブになっているという保証があれば
>話は別ですが。

見直してみたら、Rangeの前にwFmが抜けていますね。

> ' あるいは、この並べ替えが実行されるより前に、 wFm を明示的にアク>ティブにしておくこと。

添削頂いたコードに記載があったように、
最初の段階でニックネームを付けて、誤動作を防ぐように致します。

①明示的に宣言できる部分は宣言
②並べ替えが実行される前に、wFmを明示的にアクティブにしておく。
練習する度に頂いたコードを見ながら、
添削頂いた点が体得できているか確認します。

添削してもらうととってもよくわかります。
ありがとうございます!

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

[8917]1枚のシート内で12ヶ月を横に並べたカレンダーを作成する

2017-09-23 18:09:10 浦山大さんからの投稿です。

ここまでは動画見ながらですがやりきりました。
そして、カレンダーは一人でやりきるにはまだ自分のレベルが追いついていないなと感じました。

動画や、発展編で新しく教わった知識を繰り返した上で、
実力をつけてから再度チャレンジしたいと思います。
このあたりまでサラサラ書けてくると応用範囲がまた一気に広がりそうですね(*^^*)

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

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

2017-09-22 21:38:30 横山 知明さんからの投稿です。

if then
else
end if の箱をつくって、それをまた
if then
else
end if の箱に入れると、とても便利で実務で役立てられそうです。

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

[8910]重複しないリストを作成する(並べ替えを行い、最後に元に戻す)

2017-09-18 16:10:42 浦山大さんからの投稿です。

1~10までの動画を拝見させて頂いて、自分で作ってみました。

※記法、インデント等問題ないでしょうか?
※並べ替えが大変(ごちゃごちゃ)でした。
→過去の皆さんのコメント等参考にさせて頂いて自分なりに編集してみました。
■動作は確認しました、意図通りに動いています。
■別解の様に変数namaeを使用するのにもチャレンジしてみます。

基礎編で実施していることについてはサラサラ書けています。不思議です…。

また、今までブレークポイントをあまり使ってこなかったんですが、使い方が今回の練習で体得できました。途中途中でしっかり検証、実験しながらでないと訳がわからなくなってしまいますね。Debug.Printも入れながら作業するようにしています。

Sub renshu()
    Dim wFm As Worksheet
    Dim cMx As Long
    Dim cGyo As Long
    Dim cMigi As Long
        cMx = Range("B" & ActiveSheet.Rows.Count).End(xlUp).Row
        cMigi = 2
    
    For cGyo = 2 To cMx
        Range("A" & cGyo).Value = cGyo - 1
    Next
    
    Set wFm = ActiveWorkbook.Worksheets("main") 'ブレークポイント①↑通し番号を振る
    
    With wFm.Sort
            .SortFields.Clear
            .SortFields.Add Key:=Range("B1"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
            .SetRange Range("A1:B" & cMx)
            .Header = xlYes
            .Orientation = xlTopToBottom
            .Apply
    End With
    
    For cGyo = 2 To cMx 'ブレークポイント②↑B列で並べ替え
        If Range("B" & cGyo).Value <> Range("B" & cGyo - 1).Value Then
            Range("D" & cMigi).Value = cMigi - 1
            Range("E" & cMigi).Value = Range("B" & cGyo).Value
            cMigi = cMigi + 1
        End If
    Next
    
    With wFm.Sort   'ブレークポイント③↑リスト書き出しまで
            .SortFields.Clear
            .SortFields.Add Key:=Range("A1"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
            .SetRange Range("A1:B" & cMx)
            .Header = xlYes
            .Orientation = xlTopToBottom
            .Apply
    End With
    
    Range("A2:A" & cMx).ClearContents   'ブレークポイント④↑A列で並べ替え
End Sub     '⑤番号を消す-A列を削除

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

[8909]基礎講座第1章12 - ドリル

2017-09-18 15:55:02 だいすけさんからの投稿です。

いつも楽しく勉強させてもらっています。
今回に限る質問ではないのです。
先生がいつも口を酸っぱくして言っておられるキー操作のことで質問です。

講義中 range("A1")...のように華麗に打ち込んでおられるのですが、( は左の小指でシフトキーを押しながら 8 のキーを右の中指で押して、” は右の小指でシフトキーを押しながら 2 のキーを左の薬指で押して、A1を入力してまた ” と ) をまたシフトキーを交互の小指を使いながら押すと思うのですが、映像を見ているとこういう操作で入力しているようには思えないくらい早いです。

range(" ")の操作は一番多く出てくる操作だと思うのですが、わたしはどうしてもそこでまごついてしまいます。

何か入力の仕方が特別なのか、ただ単に早いだけなのか教えていただければと思います。
 




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

[8908]エクセルマクロの全体像

2017-09-18 15:45:39 ゲストさんからの投稿です。

小川先生、はじめまして。
エクセルマクロの全体感がとても分かりやすく理解できました。
講座を進めて使いこなせるようになれればと考えます。

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

[8904]発展1講座第5章 - モジュールレベル変数 アクセシビリティ設定

2017-09-17 20:16:14 浦山大さんからの投稿です。

まずは、集中して昨日今日で一気に拝見致しました!
精神と時の部屋から出てきたみたいな感覚です…\(^o^)/

基礎編でめげずにガチャガチャやってたからでしょうか?
発展編で仰られていることについてはスムーズに理解できました。
(基礎編のときと比べて、「ん?」と思う回数が明らかに減少)

ここまで終えてみて、
元から持っていたマクロのイメージに大分近いものになりました。
「どうやってデータ最終行をプログラムで表現しているのか」
「As ○○の変数の型」
等々…。
わかりやすく説明して頂くと、以外にも身近に感じられますね。

次はフォローアップ、伝票作成マクロ等に進んで、
知識を体得して使えるレベルまで昇華させます。
取り急ぎ、感謝のコメントまで。

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

[8901]発展1講座第4章 - For Each構文 イントロダクション2

2017-09-17 13:45:47 浦山大さんからの投稿です。

仕事の改善をする際に、
無理やりWEBからForEach構文を引っ張ってきて処理をしてました。
ここへ来てとってもすっきりしました!

先生の「羊」の例がとっても面白かったです。
今まで「シート…シート…」と考え続けていて、
難しいものだなあというイメージがあったんですが、
「羊」と捉えてみると親しみがわきますね。
だったらワークブックは「牧場」みたいな認識でもいいのかな?
といろいろ考えるきっかけにもなりました(ちょっと強引かもですが)。

Excelへの向かい方という点でも参考になった動画でした。
ありがとうございます、本当に感謝です!

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

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

2017-09-17 09:15:48 受講生さんからの投稿です。

・互いのセルの数値を比べ 条件に合うセルを kati=gyo とすることで選択範囲のセルに対して必要なセルを選び出すことができる。

・複数列について調べる際は、列ごとに比べ、条件に合うセルを残していくようにする。

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

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

2017-09-17 08:26:04 受講生さんからの投稿です。

動画4を基礎にして出現回数を金額に置き換える。
合計は、累計にならないようにループの初めに0をする。

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

[8893]基礎講座第4章7 - 「If文」の実習

2017-09-17 08:09:15 受講生さんからの投稿です。

おかげさまで少しづつ理解できるようになりました。
そこで、同じように記入するところは、変数a,bでいいかな?と思い、
以下のようにしてみましたが、range("h" & c) には値が入って
きませんでした。

エラーは出ていないのですが、変数の使い方に問題があるので
しょうか?
変数a,bのところをrange~とすればきちんと実行されます。

よろしくお願いいたします。

Sub ren()
    Dim a
    Dim b
    
    Dim c
    For c = 2 To 11
        
    a = Range("g" & c).Value
    b = Range("h" & c).Value
           
    If a > 70 Then
        b = "合格"
    ElseIf a >= 50 Then
        b = "まあまあ"
    Else
        b = "不合格"
    End If
    
    Next
    
End Sub

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

[8892]発展1講座第2章 - メソッド1

2017-09-16 22:49:05 浦山大さんからの投稿です。

こんな短時間で理解できるのは、
我々勉強者側にとって非常に時間短縮になりますし、
有意義なものであると思います。

感謝しかありません、ありがとうございます(*^^*)
浮いた時間を、繰り返しの練習に使っていきたいと思います!

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

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

2017-09-16 16:09:41 ながのさんからの投稿です。

文字列を見つけることがポイント
/や半角スペースを ”/”、" "で示すことで文字列を加工することができる。
いやぁ〜でも、変数がたくさん出てくるので、どの変数が何を意味しているのかを理解することが大事。

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

[8883]エクセルマクロの全体像

2017-09-14 19:32:53 受講生さんからの投稿です。

マクロを使った効率化のイメージができ、やる気が出てきました。

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

[8882]エクセルマクロの全体像

2017-09-14 18:07:12 受講生さんからの投稿です。

自称脱初心者です。
最近クラスモジュールに関心を持っています。
解説はありますか?

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

[8881]基礎講座第3章7 - 住所情報を分割する(方針を考える)

2017-09-14 18:05:21 金子 伊智郎さんからの投稿です。

小川様

> 講座をやっていると、英語(英単語)に慣れてない受講生の方も
> ままいらっしゃいます。
> そうすると、「adrs」とか表記しても、その趣旨の理解だけで
> 頭がいっぱいになってしまう方もおり、講座にならなくなって
> しまうことがあります。
> なので、ベタでも、講座では、あえて、「jusho」とかいう表記を
> しています。

激しく納得しました。
変数名から目的を連想できないといけないので何がなんでも英語に
こだわる必要はないですね。

特にいろいろな背景の個人が本講座の対象と考えると余計に、ですね。

引き続きよろしくお願いします。

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

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

2017-09-12 21:23:30 受講生さんからの投稿です。

Instr関数を使って、見つけたい文字列がなければ”0”を返すのがポイント!

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

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

2017-09-12 21:05:25 受講生さんからの投稿です。

Left関数、Mid関数、Instr関数の復習になった。
どんどん書く練習をすすめるぞ!

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

[8868]基礎講座第3章7 - 住所情報を分割する(方針を考える)

2017-09-12 11:49:04 金子 伊智郎さんからの投稿です。

小川様

回答ありがとうございます!!
励みになります!
確かにVBAの予約語orキーワードを変数名に利用してしまうのはよろしくないですね。
個人的に日本語のローマ字読みはmigi, hidari, ue, shita などは好きではないので 英単語省略adrsなど.. で行こうかなと思います。
丁寧な回答+解説ありがとうございました。

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

[8856]エクセルマクロの全体像

2017-09-11 23:33:53 受講生さんからの投稿です。

とてもわかりやすく、学ぶ意欲が湧いてきました。

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

[8855]基礎講座第3章9 - 住所情報を分割する(実習)

2017-09-11 21:28:59 横山 知明さんからの投稿です。

left,mid,right関数が文字列をとり、len,instr関数が数値をとってくるところのみを見ても、何が役に立つのかわからなかったのですが、組み合わせによって、こんなに効率化に寄与できるのか!と、とてもビックリしました。感動です!

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

[8854]基礎講座第3章7 - 住所情報を分割する(方針を考える)

2017-09-11 17:29:16 金子 伊智郎さんからの投稿です。

私もコードを書いてみました。
VBAは仕事でも使った経験があるのですが、今回体系的に基礎から学びなおしたいと思い、オンライン講座受講しています。
先生の動画がわかりやすいのでいいペースで進んでいます。

Sub address_split()
    Const minGyo = 2
    Const maxGyo = 51
    Dim num
    Dim address
    
    For num = minGyo To maxGyo
'        Range("F" & num).Value = Left(Range("C" & num).Value, InStr(Range("C" & num).Value, "区"))
'        Range("G" & num).Value = Mid(Range("C" & num).Value, InStr(Range("C" & num).Value, "区") + 1)
        
        'Range("C" & num).Value がくどいので変数に格納する
        address = Range("C" & num).Value
        Range("F" & num).Value = Left(address, InStr(address, "区"))
        Range("G" & num).Value = Mid(address, InStr(address, "区") + 1)

    Next num

End Sub

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

[8853]エクセルマクロの全体像

2017-09-11 16:05:04 受講生さんからの投稿です。

在宅で事務代行業務をしています。現状、マクロを使うような案件を依頼されることはないので、今すぐマクロを使って解決したい問題があるわけではないですが、まさにマクロで魔法のように作業効率化される様子に魅了されています。ぜひ、少しずつでも使えるようになって、将来的にお仕事につなげたいです。

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


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

 

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

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

トップへ