エクセルマクロ 達人養成塾 オンライン講座 質問と回答

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

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

2016-12-24 08:30:42 受講生さんからの投稿です。

全体像がわかりやすくて、すばらしい講座だと思いました。引き続き、学習させて頂きます。

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

[7444]補講:複数ファイル間でのデータ転記

2016-12-21 15:47:49 受講生さんからの投稿です。

実務でもほかのファイルから情報を拾って埋めてまたさらに別のファイルからといくつものファイルを参照して再集計になるマクロを実行しています。どうやってやるのか不思議でしたが、なんとなくわかりました。

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

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

2016-12-16 13:08:20 受講生さんからの投稿です。

if、elseを使って問題を解いてみました。
変数はfor next 構文の外で設定していれば、構文の下のコードには反映されないと勝手に思っていたのですが、
nextの下にコードを書いても、変数リセットの指示を小人ちゃんに出さなければ元に戻らないんですね!

Sub rensyu2()    
    Dim ban
    Dim gyo
    Dim cno
    ban = 0
    cno = 1
    For gyo = 4 To 19
        If Range("D" & gyo).Value <> Range("D" & gyo - 1).Value Then
            ban = ban + 1
            cno = 1
        Else
        cno = cno + 1
        End If
        Range("B" & gyo).Value = ban
        Range("C" & gyo).Value = cno
    Next
        
End Sub

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

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

2016-12-15 22:06:29 ゲストさんからの投稿です。

業務でマクロを利用していて、自分でも作成しているので、大体は理解出来ると思っています。見やすくわかりやすいソースにする為のコツやルール決め等が知りたいです。

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

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

2016-12-15 16:58:29 受講生さんからの投稿です。

お世話になっております。一つこの例題について伺いたいことがあります。
もし、キャンペーン応募が同じ人から複数件あったとして、左の表の同じセルに「、」を打って複数件足していくような場合を想定して下記のようなコードを書きました。
しかし、F5で実行を押すたびに左の票の数が足されていってしまいます。修正箇所としてどの点を直せばよろしいでしょうか。
ご教授宜しくお願い致します。

Sub sakusei()
    Dim hida
    Dim migi
    Dim goukei

    For migi = 11 To 23

        For hida = 4 To 29
        goukei = Range("C" & hida).Value
               
            If Range("E" & migi).Value = Range("A" & hida).Value Then
             goukei = goukei & "," & Range("F" & migi).Value
            End If
        Range("C" & hida) = goukei
        Next
    Next
End Sub

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

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

2016-12-15 11:11:20 受講生さんからの投稿です。

お世話になっています。一つ聞きたいことがあります。
下記のように、 Range("D" & hida).Value = goukeiをfor next (migi)の構文内で実行すると、今月支払いのない成人祝いの欄は「空白」で表示されます。
構文外にこの式を置くと「0」と表示されるのですが、構文内に置くとなぜ「空白」になってしまうのでしょうか。
[code]Sub rensyu3()
Dim goukei
Dim migi
Dim hida
For hida = 4 To 9
goukei = 0
For migi = 4 To 10

If Range("I" & migi).Value = Range("B" & hida).Value Then
goukei = goukei + Range("J" & migi).Value
Range("D" & hida).Value = goukei
End If
Next
Next
End Sub[/code

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

[7416]基礎講座第4章5 - 「ハナコのステップ」のふりかえり

2016-12-14 12:34:36 受講生さんからの投稿です。

ネットから拾ってきてそのまま写すはとてもやりがちだと思いました。この講義を受けることで1つ1つの積み重ねが大事と実感しました。

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

[7415]基礎講座第4章4 - 「For Next構文」の実習

2016-12-14 12:22:46 受講生さんからの投稿です。

楽しいです!!

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

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

2016-12-13 18:14:11 ゲストさんからの投稿です。

マクロ・VBAを自分のものにしたいとおもっていました。とてもタイムリーに良い動画で助かります。しっかり自分のものにしたいと思います。

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

[7404]エクセルマクロ・VBAを利用するための推奨設定 - イントロダクション

2016-12-12 20:51:26 ゲストさんからの投稿です。

昔BASICと云うプログラム言語がありました。そのBASICにかなり似ていますので懐かしいですね!VBAはデータベースの集計や各項目の抽出に必須であることを痛感しました。
VBAと関数及び作業セルを使えば、仕事でも何でも出来ないことは無いと思います。

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

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

2016-12-12 15:37:53 受講生さんからの投稿です。

実践してみるとまだちょっと止まってしまったりしますが、面白くなってきました!!

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

[7395]基礎講座第3章4 - Len関数、Instr関数

2016-12-12 12:48:24 受講生さんからの投稿です。

理解できました。

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

[7394]基礎講座第3章3 - Left関数、Mid関数、Right関数

2016-12-12 12:36:01 受講生さんからの投稿です。

関数を理解できていたのでとても理解しやすかったです。

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

[7391]基礎講座第3章2 - マクロを書く人のためのショートカットキー操作

2016-12-09 16:17:11 受講生さんからの投稿です。

ショートカットを使用するクセをつけられると時間短縮にもつながるなと実感しました。

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

[7377]基礎講座第2章7 - 日付の扱い

2016-12-07 16:47:19 受講生さんからの投稿です。

日付しか入れてなくても時間は表示されるということでしょうか?

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

[7365]この動画講座サイト「Padstudy」の使い方

2016-12-07 06:23:42 受講生さんからの投稿です。

少なくとも私はここまで丁寧に解説いただかなくても画面を読めば理解できました。

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

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

2016-12-06 13:47:42 ゲストさんからの投稿です。

エクセルの機能のごく一部しか使えていなかったということを思い知らされました。3日要していた作業が3分だなんて、とても衝撃的です。人生変わってくるくらいのインパクト。
是非とも、学びたい。ワクワクしますね。

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

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

2016-12-04 08:59:47 平吹 敦史さんからの投稿です。

お世話になります。
Formulaプロパティは、最初違いがよくわかりませんでしたが、簡単なテストをして、よくわかりました。今までは、数式はExcelで事前につくっておいて、それ以外をvbaで処理していました。
数式そのものもvbaで処理できることがわかり、幅が広がりそうです。

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

[7350]エクセルマクロ・VBAを利用するための推奨設定 - Excel2010、Excel2013、Excel2016の場合

2016-12-02 22:23:02 渡辺 孝明さんからの投稿です。

説明は今のところ ついていけた。

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

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

2016-12-01 21:45:15 渡辺 孝明さんからの投稿です。

なかなかむつかしそうですね。おぼえられるかな。不安と期待でいっぱいです。

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

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

2016-12-01 15:36:55 受講生さんからの投稿です。

セルの英字は、小文字で入力しても問題ないのでしょうか。

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

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

2016-12-01 13:21:23 ゲストさんからの投稿です。

これからExcelマクロ・VBAを学ぶのが楽しみになりました。

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

[7340]エクセルマクロ・VBAを利用するための推奨設定 - Excel2010、Excel2013、Excel2016の場合

2016-11-29 19:25:02 ゲストさんからの投稿です。

マクロを習い始める前に、推奨設定を教えてくれるので、後で躓くことを防げるのが非常にうれしいです。
これからも引き続き学習に取り組んでいきます。

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

[7339]エクセルマクロ・VBAを利用するための推奨設定 - イントロダクション

2016-11-29 19:08:05 ゲストさんからの投稿です。

分かりやすく層別してある資料があり、理解しやすいです。

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

[7337]エクセルマクロ・VBAを利用するための推奨設定 - イントロダクション

2016-11-28 22:00:32 受講生さんからの投稿です。

先週一通りの動画を見ました。
中でも、実習の中身が面白くとても興味とやる気が沸いています。
もう一度、頂いた動画を見、習い、実践学習に入って行きたいと考えています。

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

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

2016-11-25 22:45:47 アルディさんからの投稿です。

これからマクロを活用して仕事の幅を広げたいと思っています。
なにとぞよろしくお願いいたします。

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

[7327]動画下の学習状況を「完了!」にすると、【学習済み】と表示され、文字がグレーになります。

2016-11-25 22:37:33 アルディさんからの投稿です。

完了にチェックをつけた際に、ページが自動でリロードされ、動画再生が始まってしまうのが、気になりますね。
完了にチェックを付けた場合は、コンテンツ一覧ページへ飛ばされた方がいい気がします。

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

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

2016-11-25 15:15:41 ゲストさんからの投稿です。

こびとちゃんがいるという考え方、非常に分かりやすく頭に入ってきました。
これからマクロを学び使えるようになるのが楽しみです。

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

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

2016-11-22 18:18:32 受講生さんからの投稿です。

小川先生
お世話になっております。
10月末から勉強させていただいております。
複数シート間で処理をするときのプログラムの書き方がまだしっかりと身についていません。
また変数名を何にするか決めるのに時間がかかり決めた変数名に自信が持てません。
引き続き身につくよう勉強していきます。
読みにくいコードとなり申し訳ありませんがご確認お願いいたします。

Sub denpyoMake()
'mainシートの取引先名称ごとにシートを分ける

    Dim shFm As Worksheet
    Dim shTo As Worksheet
    Dim sortMaeNum As Long
    Dim sortMaeNumMx
    Dim lnfm As Long
    Dim lnfmMx As Long
    Dim lnTo As Long
    Dim dt As Date
    
    Set shFm = Worksheets("main")
    
    'main、main1以外のシートを削除
    deleteSheet
    
    sortMaeNumMx = Range("B" & Rows.Count).End(xlUp).Row
    For sortMaeNum = 2 To sortMaeNumMx
        shFm.Range("A" & sortMaeNum).Value = sortMaeNum - 1
    Next sortMaeNum
    
    'mainシートでソートする
    sortTorihiki
    
    lnfmMx = Range("B" & Rows.Count).End(xlUp).Row
    For lnfm = 2 To lnfmMx
        If shFm.Range("B" & lnfm).Value <> shFm.Range("B" & lnfm - 1).Value Then
            If lnfm <> 2 Then
                '罫線を引く
                keisenDraw (lnTo)
            
                '印刷範囲を設定する
                printSetting (lnTo)
            End If
            
            Worksheets("main1").Copy after:=Worksheets(Worksheets.Count)
            ActiveSheet.Name = shFm.Range("B" & lnfm).Value
            Set shTo = ActiveSheet
            shTo.Range("F2").Value = shTo.Name
            lnTo = 16
        Else
            lnTo = lnTo + 1
        End If
        dt = shFm.Range("C" & lnfm).Value
        shTo.Range("B" & lnTo).Value = Right(Year(dt), 2)
        shTo.Range("C" & lnTo).Value = Month(dt)
        shTo.Range("D" & lnTo).Value = Day(dt)
        shTo.Range("E" & lnTo).Value = shFm.Range("D" & lnfm).Value
        shTo.Range("F" & lnTo).Value = shFm.Range("E" & lnfm).Value
        shTo.Range("H" & lnTo).Value = shFm.Range("F" & lnfm).Value
        If shFm.Range("G" & lnfm).Value > 0 Then
            shTo.Range("I" & lnTo).Value = shFm.Range("G" & lnfm).Value
        Else
            shTo.Range("J" & lnTo).Value = shFm.Range("G" & lnfm).Value
        End If
        shTo.Range("K" & lnTo).Value = shTo.Range("K" & lnTo - 1).Value + shFm.Range("G" & lnfm).Value
            
    Next lnfm
    
    'mainシートを元の順番でソートする
    sortMotojun

    shFm.Activate
    shFm.Range("A1").Select
    
End Sub

Private Sub sortTorihiki()
'取引先名称で並び替える
    
    Columns("A:G").Select
    With Worksheets("main").Sort
        .SortFields.Clear
        .SortFields.Add Key:=Range("B:B"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        .SortFields.Add Key:=Range("C:C"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        .SortFields.Add Key:=Range("D:D"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        .SortFields.Add Key:=Range("E:E"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        .SortFields.Add Key:=Range("F:F"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        
        .SetRange Range("A:G")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Worksheets("main").Range("A1").Value = "No"
End Sub

Private Sub sortMotojun()
'元の並び順に並び替える
    
    Columns("A:G").Select
    With Worksheets("main").Sort
        .SortFields.Clear
        .SortFields.Add Key:=Range("A:A"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        
        .SetRange Range("A:G")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Range("A:A").ClearContents
End Sub

Private Sub deleteSheet()
' main、main1以外のシートを削除する

    Application.DisplayAlerts = False
    Dim sh As Worksheet
    For Each sh In Worksheets
        If Left(sh.Name, 4) <> "main" Then
            sh.Delete
        End If
    Next
    Application.DisplayAlerts = True
End Sub

Private Sub keisenDraw(mxGyo As Long)
'追加シートに罫線を引く

    With Range("B16:K" & mxGyo)
        .Borders(xlDiagonalDown).LineStyle = xlNone
        .Borders(xlDiagonalUp).LineStyle = xlNone
        With .Borders(xlEdgeLeft)
            .LineStyle = xlContinuous
            .ColorIndex = 0
            .TintAndShade = 0
            .Weight = xlThin
        End With
        With .Borders(xlEdgeTop)
            .LineStyle = xlContinuous
            .ColorIndex = 0
            .TintAndShade = 0
            .Weight = xlThin
        End With
        With .Borders(xlEdgeBottom)
            .LineStyle = xlContinuous
            .ColorIndex = 0
            .TintAndShade = 0
            .Weight = xlThin
        End With
        With .Borders(xlEdgeRight)
            .LineStyle = xlContinuous
            .ColorIndex = 0
            .TintAndShade = 0
            .Weight = xlThin
        End With
        With .Borders(xlInsideVertical)
            .LineStyle = xlContinuous
            .ColorIndex = 0
            .TintAndShade = 0
            .Weight = xlThin
        End With
        With .Borders(xlInsideHorizontal)
            .LineStyle = xlContinuous
            .ColorIndex = 0
            .TintAndShade = 0
            .Weight = xlThin
        End With
    End With
End Sub

Private Sub printSetting(maxGyo As Long)
'印刷範囲を変更する。またヘッダ・フッタを入れる。

Range("A1:L" & maxGyo).Select
    ActiveSheet.PageSetup.PrintArea = "A1:L" & maxGyo + 1
    Application.PrintCommunication = False
    With ActiveSheet.PageSetup
        .PrintTitleRows = ""
        .PrintTitleColumns = ""
        .LeftHeader = ""
        .CenterHeader = ""
        .RightHeader = "&D"
        .LeftFooter = ""
        .CenterFooter = ""
        .RightFooter = "&A"
        .LeftMargin = Application.InchesToPoints(0.78740157480315)
        .RightMargin = Application.InchesToPoints(0.78740157480315)
        .TopMargin = Application.InchesToPoints(0.984251968503937)
        .BottomMargin = Application.InchesToPoints(0.984251968503937)
        .HeaderMargin = Application.InchesToPoints(0.511811023622047)
        .FooterMargin = Application.InchesToPoints(0.511811023622047)
        .PrintHeadings = False
        .PrintGridlines = False
        .PrintComments = xlPrintNoComments
        .CenterHorizontally = True
        .CenterVertically = False
        .Orientation = xlLandscape
        .Draft = False
        .PaperSize = xlPaperA4
        .FirstPageNumber = xlAutomatic
        .Order = xlDownThenOver
        .BlackAndWhite = False
        .Zoom = False
        .FitToPagesWide = 10
        .FitToPagesTall = 10
        .PrintErrors = xlPrintErrorsDisplayed
        .OddAndEvenPagesHeaderFooter = False
        .DifferentFirstPageHeaderFooter = False
        .ScaleWithDocHeaderFooter = True
        .AlignMarginsHeaderFooter = False
        .EvenPage.LeftHeader.Text = ""
        .EvenPage.CenterHeader.Text = ""
        .EvenPage.RightHeader.Text = ""
        .EvenPage.LeftFooter.Text = ""
        .EvenPage.CenterFooter.Text = ""
        .EvenPage.RightFooter.Text = ""
        .FirstPage.LeftHeader.Text = ""
        .FirstPage.CenterHeader.Text = ""
        .FirstPage.RightHeader.Text = ""
        .FirstPage.LeftFooter.Text = ""
        .FirstPage.CenterFooter.Text = ""
        .FirstPage.RightFooter.Text = ""
    End With
    Application.PrintCommunication = True
End Sub

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

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

2016-11-20 22:08:12 riekoishidaさんからの投稿です。

早くkobitoに指令を伝えられるようになりたいです。

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


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

 

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

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

トップへ