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

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

[10110]おまけ1-3 Functionプロシージャの活用

2018-06-12 22:30:03 田中 宏明さんからの投稿です。

この関数の使い方(参照渡しの引数を書き換えて戻り値に入れる)は、すごいです。

参照循環ではまりそうで、頭がおかしくなりそうですが、ウォッチ式で正常に動いていることを確認できました。

Private Function SetDic(dic As Scripting.Dictionary, sN As String) As Scripting.Dictionary
    If Not dic.Exists(sN) Then
        dic.Add sN, 16
        Worksheets("main1").Copy After:=Worksheets(Worksheets.Count)
        ActiveSheet.Name = sN
    Else
        dic.Item(sN) = dic.Item(sN) + 1
    End If
    Set SetDic = dic
End Function 

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

[10089]基礎講座第2章5 – 文字列の結合

2018-06-10 12:17:59 Matsumotoさんからの投稿です。

結合演算子は本来文字列を結合するもの。
でも小人ちゃんの配慮で文字列以外も文字列とみなして結合してくれる。

結合結果(文字列or数字のどちらとみなされるか)は、結局そのセルの書式設定に依存すると理解しました。

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

[10088]総合問題3 連想配列演習-取引先ごとに取引金額の合計を算出する

2018-06-09 23:10:59 受講生さんからの投稿です。

田中宏明です。
6月9日23:10現在ですが、タイトル「総合問題3 連想配列演習-取引先ごとに取引金額の合計を算出する」の動画は内容があっていないようです。
 

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

[10087]総合問題5-2 取引先ごとの集計を完成させる

2018-06-09 18:42:11 田中 宏明さんからの投稿です。

この動画、実務に役立つマクロを素早く仕上げるためのノウハウが
満載です。素晴らしいです。

なんとなくうまく動きそうな気がしたら、実行して結果を確かめてみる。
必要により、ステップ実行しながら、コードを修正していく。

といったやり方でマクロを素早く完成させることが自然に身についているという実感があります。

本当にありがとうございます。

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

[10086]総合問題4-1 連想配列に行番号のリストを格納する

2018-06-09 18:40:21 田中 宏明さんからの投稿です。

連想配列を使うことが多く、連想配列の中に、1次元動的配列を格納する方法を調べていましたが、実現方法がわかりませんでした。

今回の解法で「,」区切りの文字列を連想配列に格納し、split関数で配列に変換するというやり方は、目から鱗が落ちるようでした。

近いうち、実務で実際に使う場面が登場すると思っています。
その際は、時間をかけず、シンプルにマクロを書き上げてみたいです。

連想配列について、ここまで詳しく解説された講座はどこにもないです。
大変満足しました。

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

[10085]おまけ1-4 元データを配列に格納して処理する(その1)

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

小川先生
今回の新しい動画、おまけも含めてとても盛り沢山で、うれしい悲鳴を上げながら取り組み中です。課題は、最初はさらっと出来たつもりでしたが、動画の中でいろんな手法があること、また、即必要なときにすらすら書けるレベルまで行くには何回も繰り返して練習、技量を定着させる必要を感じ、結局5週間以上を経たいまでも、まだ取り組み中です。配列が出来ると基礎編とは違う世界に来た感じで、いい動画をいただいてありがとうございます。ちなみに、プログラミングは言語と一緒で、しばらく使わないと技量が低下する性質のものでしょうか?(忘れっぽいのは私だけなんでしょうか?それとも誰でも忘れがちなんでしょうか?)

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

[10084]フォルダ内のサブフォルダとファイルをリストアップ

2018-06-07 21:00:57 田中 宏明さんからの投稿です。

今日は、指定フォルダーから下にある全サブフォルダーを検索し、条件にヒットしたファイル(ある文字が含まれたファイル)のみを1つのフォルダーに移動させるマクロを作成できました。
for each構文 , instr関数, 動的配列, 再帰呼出 の組み合わせで実現でき、感激です。 

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

[10081]基礎講座第1章12 – ドリル

2018-06-07 16:53:05 シロモモさんからの投稿です。

質問ですが、セルを指定するときは大文字で書くのが必須ですか?
例:range(“b5”)でもマクロは動くけど、range(“B5”)としたほうがよい?
また、マクロのコードは小文字で書いても大文字自動変換されるけど、セルは変換されないのですね。ここは関数と違うのですね。

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

[10080]基礎講座第1章1 – マクロの入ったファイルを開くときの注意点

2018-06-07 10:22:53 シロモモさんからの投稿です。

独学で勉強を始めていましたが、わからないことが多く、今日から受講をスタートします。
仕事、家事、育児の両立と不安もありますが、これが習得できる最後のチャンスくらいの気持ちで、あきらめずにくらいつきたいと思います。よろしくお願いします。

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

[10078]エクセルマクロ・VBA発展編1フォローアップミニセミナーNo.08

2018-06-07 05:22:54 受講生さんからの投稿です。

小川様
set構文の簡単な練習とのことですが、発展編1では、どの回で解説したのでしょうか。習った記憶がないのですが。よろしくお願いします。

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

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

2018-06-05 22:46:42 近藤さんからの投稿です。

最初すごさがピンときませんでしたが、
理解すると驚き!めちゃめちゃ強力な技ですね!!!

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

[10073]自動記録機能でマクロを作る – 基本編

2018-06-05 19:51:31 hanahaさんからの投稿です。

コビトちゃんがいたのかー

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

[10072]簡単なマクロを書いてみる – 基本編

2018-06-05 19:09:33 hanahaさんからの投稿です。

丁寧。わかりやすい。おもしろい。

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

[10069]セル内の文字列から区切り文字を見つけ、その区切り文字の間にある文字列を反映しつつデータ転記する

2018-06-04 09:45:33 マメコトさんからの投稿です。

『最初に見つけた「、」をatoに入れる(∵仮想のmaeが0だから)。』という発想は独力では思いつきませんでした。
動画を見て処理のロジックが理解できた後、一気に処理できるマクロを先生のように書けるのが楽しくて、3回も(最初から)書いて実行してみるを繰り返しましたw
しかもこのような処理って、実務で結構ニーズのあることだと思います。
サラサラとマクロを書いて、同僚から賞賛の目で見られている自分の姿を妄想したりしています。
楽しいなぁ~

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

[10064]セッション解析と実装のサンプルデータ解説

2018-05-31 01:00:59 近藤さんからの投稿です。

一通り動画を見ました。体系的でわかりやすいです。
まだまだ理解が追い付いてませんが、たくさん動画をみて理解していきたいです。
エクセルでこれほど連携できるなんて本当にすごいと思ってます!!
色んな可能性を感じて、あれもできるんじゃないか、これもできるんじゃないかと楽しくワクワクしながらコードを書いています!

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

[10061]発展1講座第4章 – Select Case 比較する条件の順番

2018-05-29 20:43:24 田中 宏明さんからの投稿です。

Select Case True いつの間にか
使っていました。

Sub SelectCaseTrue()
    Dim strEv As String
    Select Case True
        Case Range("I2").Value >= 105
            strEv = "超優良店舗"
        Case Range("I2").Value >= 100
            strEv = "優良店舗"
        Case Range("I2").Value >= 95
            strEv = "やや問題"
        Case Else
            strEv = "一層努力"
    End Select
    Range("J2").Value = strEv
End Sub

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

[10059]発展編1 フォローメールセミナー 第7回

2018-05-29 13:11:41 HKさんからの投稿です。

私も9411でコメントされている受講生さんと同じように、自分で作ったプログラムでは罫線を引く作業は別のサブプロシージャを作成しました。

また、残高の計算も、変数を使用して、条件分岐をしなくてもいいように作ってみました。(条件分岐を考えるのがめんどくさいのでなるべく避けるように作ってしまいます)

先生のやり方も出来るように練習したいと思います。

Sub GetNames_Final()
    DeleteSheets_Fin
    
    Dim lnGyo As Long
    Dim lnGyoMx As Long
    Dim wsMain As Worksheet
    Dim stCompany As String
    Dim wsSaki As Worksheet
    Dim dt As Date
    Dim lnSaki As Long
    Dim lnZandaka As Long
    
    Set wsMain = Worksheets("main")
    lnGyoMx = wsMain.Range("B" & wsMain.Rows.Count).End(xlUp).Row
    
    For lnGyo = 2 To lnGyoMx
        If stCompany <> wsMain.Range("B" & lnGyo).Value Then
            stCompany = wsMain.Range("B" & lnGyo).Value
'            Debug.Print wsMain.Range("B" & lnGyo).Value
            Worksheets("main1").Copy after:=Worksheets(Worksheets.Count)
            Set wsSaki = Worksheets(Worksheets.Count)
            wsSaki.Name = stCompany
            lnSaki = 16
            lnZandaka = 0
        End If
        
        wsSaki.Range("H" & lnSaki).Value = wsMain.Range("F" & lnGyo).Value
        wsSaki.Range("E" & lnSaki).Value = wsMain.Range("D" & lnGyo).Value
        wsSaki.Range("F" & lnSaki).Value = wsMain.Range("E" & lnGyo).Value
        If wsMain.Range("G" & lnGyo).Value > 0 Then
            wsSaki.Range("I" & lnSaki).Value = wsMain.Range("G" & lnGyo).Value
        Else
            wsSaki.Range("J" & lnSaki).Value = wsMain.Range("G" & lnGyo).Value
        End If
        
        '残高の計算
        lnZandaka = lnZandaka + wsSaki.Range("I" & lnSaki).Value + wsSaki.Range("J" & lnSaki).Value
        wsSaki.Range("K" & lnSaki).Value = lnZandaka
        
        dt = wsMain.Range("C" & lnGyo).Value
        wsSaki.Range("B" & lnSaki).Value = Right(Year(dt), 2)
        wsSaki.Range("C" & lnSaki).Value = Month(dt)
        wsSaki.Range("D" & lnSaki).Value = Day(dt)

        lnSaki = lnSaki + 1
    Next
    
    '罫線を引く
    Keisen
End Sub

Sub Keisen()
    Dim ws As Worksheet
    Dim lnGyoMx As Long
    For Each ws In Worksheets
        Select Case ws.Name
            Case Is = "main", "main1"
            Case Else
                lnGyoMx = ws.Range("B" & ws.Rows.Count).End(xlUp).Row
                ws.Range("B16:K" & lnGyoMx).Borders.LineStyle = xlContinuous
        End Select
    Next
End Sub

Sub DeleteSheets_Fin()
    Dim ws As Worksheet
    For Each ws In Worksheets
        Select Case ws.Name
            Case Is = "main", "main1"
            Case Else
                Application.DisplayAlerts = False
                ws.Delete
                Application.DisplayAlerts = True
        End Select
    Next
End Sub

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

[10056]発展1講座第4章 – Select Case 複数条件の並べ方

2018-05-29 06:59:52 横山 知明さんからの投稿です。

Select Caseで、コンマを活用すると、
摘要から仕訳辞書という流れで、活用できます。
いつも、有益な方法を教えていただき、
ありがとうございます。

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

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

2018-05-28 01:11:24 マメコトさんからの投稿です。

今回の問題はこのように書いてから動画を見ました。

Sub mondai2()
    Dim hida
    Dim migi
    Dim Kuiki
    migi = 2
    
    For hida = 2 To 27
        If Range("A" & hida).Value <> Range("A" & hida - 1) Then
            Range("E" & migi).Value = Range("A" & hida).Value
            Range("F" & migi).Value = Range("B" & hida).Value
            Kuiki = Range("C" & hida).Value & "地区"
            Range("G" & migi).Value = Kuiki
            migi = migi + 1
        Else
            Kuiki = Kuiki & "," & Range("C" & hida) & "地区"
            Range("G" & migi - 1).Value = Kuiki
        End If
    Next

End Sub

重複した業者名が続くと『区域』を毎回書き直すのがカッコワルイと感じてはいますが、最初と最後の特殊な制御は不要になるので、メンテナンスはしやすく、これはこれでアリなのではと思っています。
一方、処理が重くなったり遅くなったりするというデメリットもあるかも知れないのですが・・・どうでしょうか。

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

[10051]簡単なマクロを書いてみる – 基本編

2018-05-27 09:52:21 受講生さんからの投稿です。

ExcelVBA初心者です。
凄くわかりやすく勉強になります。
ステップインの黄色行はこれから実行する行と教えていただき、よくわかりました。

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

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

2018-05-26 15:45:24 マメコトさんからの投稿です。

『行をループさせて最大値を取り、その後列をループさせて表の最大値を獲得する』というアイデア(設計図)を思いついたものの、列をループさせる手法が思いつかず、結局何度も似たようなForループをコピペして「とりあえず動く」マクロを書いたものの、エレガントとは言えない方法だなぁと思っていました。解決策をネットで検索して、手法として使えそうなcellsを知りました。
四苦八苦しながらcellsで動くマクロを作成(過去に投稿された方のコードと全く同じ)し、それから動画を見ました。
ところが、そのエレガントとは言えない方法(ベタな方法)が解説されている動画を見て、自分の考え方に根本的な誤りがあることに気づきました。
つまり『まだ白帯の私が高度な技を憶えようとするのは早すぎる。学んだことを徹底して反復練習することが先決』ということです。
実際、ベタな方法でコードを書くのには、15分もかかっていないのに、慣れないcellsを検索して試行錯誤するのに3日もかかってしまいました。
cellsという手法もどうやらベストではないらしく、for each構文その他、将来学ぶべきことはまだあるらしいということも知りました。
もう、ネットで検索するのに時間を費やして演習時間を減らすという迂遠な方法は止めます。
たぶん、この講座のカリキュラムに沿って学ぶ方が、最速でマクラー(マクロを自在に操れる人。そんな言い方するのか不明)になれる気が本当にするからです。
今後もよろしくお願いします。

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

[10040]条件に一致するデータだけのリストを、条件に一致しないデータを削除する方法で複数の別ファイルとして連続的に作成する。

2018-05-24 06:08:09 わかやまさんからの投稿です。

小川様

お返事ありがとうございます。無事に実行できました。
やはり自分では気が付かないことがあるのですね。
結構時間を費やしてしまいましたが、プログラム書くときは
このようなことをひとつずつ学んでいく必要があるのだと感じました。
今後ともよろしくお願いいたします。

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

[10039] .zip ファイルとは?

2018-05-23 14:53:03 ゲストさんからの投稿です。

いままで知らずにzipファイルを使っていました。
大変勉強になりました。仕事でも使っていきます。

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

[10038]エクセルマクロVBA「Web連携」Microsoft Internet Controls_Webコンテンツの取得

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

田中 宏明様

わざわざコメントありがとうございました。
やはり一筋縄ではいかないのですね。
参考ページを見ながら、
MSXMLやWinHttpRequestの検討もしつつ
研究してみます。
ありがとうございました。

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

[10034]条件に一致するデータだけのリストを、条件に一致しないデータを削除する方法で複数の別ファイルとして連続的に作成する。

2018-05-22 21:31:02 わかやまさんからの投稿です。

小川様

workbooksでファイルを指定しているのですが、インデックスが有効範囲にありません というエラーが解消できません。

以下、マクロ内容です。


Sub kotae2()
Dim fairu
Dim sakujyo
fairu = “n.xls”
Sheets(“本番”).Select
Sheets(“本番”).Copy
ChDir “C:\Users\morita\Desktop”
ActiveWorkbook.SaveAs Filename:=”C:\Users\morita\Desktop\ ” & fairu, _
FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
Workbooks(“n.xls”).Worksheets(“本番”).Range(“E4”).Value = “ぬいぐるみ”

End Sub


Workbooks(“n.xls”).Worksheets(“本番”).Range(“E4”).Value = “ぬいぐるみ”
の部分で止まってしまいます。
このとき、おおもとのks207のファイルも開いております。

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

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

[10033]条件に一致するデータを別表に転記する。AutoFilterより便利な条件抽出マクロ。

2018-05-22 21:17:29 ゲストさんからの投稿です。

ありがとうございます!
コードの意味は深く考えず、最終行なのでROWで下からぶつかったところ・・・?と想像しつつ、とりあえず活用させていただきます。

ここまでの動画の練習問題も日々の業務に本当に役に立っていて、毎日進化中の自分、数週間前の私とは明らかに違って、魔法にかかっているみたいです。
発展編へ向けて頑張ります☆

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

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

2018-05-22 21:09:52 田中 宏明さんからの投稿です。

上位のオブジェクト、理解できました。
.Parent を使わない方法で書いてみました。

Sub sample()
    Dim rng As Range
    Set rng = Range("C3")
    Debug.Print rng.Worksheet.Name
End Sub

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

[10014]エクセルマクロVBA「Web連携」Microsoft Internet Controls_Webコンテンツの取得

2018-05-21 13:37:46 受講生さんからの投稿です。

何度もすみません、
以下の件で、
.getElementsByClassName(“nav-login-btn”)を使ってみたところ、
要素の取得はできるようなのですが、クリックができませんでした。
.clickと書くだけではダメなのでしょうか。


また、それとは別の質問で、SWFコンテンツ?というのでしょうか、
以下のようなソースの場合、どのようにすればクリックできますでしょうか
getElementByIdではできませんでした。

<object type=”application/x-shockwave-flash” id=”MainExternalImport” name=”MainExternalImport” align=”middle” data=”./swf/MainExternalImport_ver1_4.swf” width=”105″ height=”23″><param name=”quality” value=”high”><param name=”bgcolor” value=”#ffffff”><param name=”allowscriptaccess” value=”sameDomain”><param name=”allowfullscreen” value=”true”></object>

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

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

2018-05-21 02:57:15 マメコトさんからの投稿です。

なぜ同じ感想を3通も送信されてしまったのか、わかりません。お手数ですが、削除してください。
以前解説があったかも知れませんが、ピリオドを打った後(Range(“A1”).⇐これ)の候補リストが、今回のマクロを記述する際に表示されないのは、vbeの仕様なのでしょうか。

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

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

2018-05-21 02:40:32 マメコトさんからの投稿です。

全ての問題について、動画解説を見る前に「先ずは自力でやってみよう」と思って取り組んでいます。
今回の問題は、動画5で学んだことが直接活かせる問題でした。
途中で考え込むこともなく、サラサラとコードを書いている自分にびっくりですw
今までのマクロはシートが別だと全く用をなさなかったですが、マクロの中でシートを指定すれば、どのシートからでも動かせるんですね。
面白いなぁ~

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


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

 

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

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

トップへ