エクセルマクロオンライン講座 質問と回答

  • このエントリーをはてなブックマークに追加

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

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

ゲストさんからの投稿です。

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

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

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

受講生さんからの投稿です。

小川先生
お世話になっております。
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] エクセルマクロの全体像

riekoishidaさんからの投稿です。

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

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

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

受講生さんからの投稿です。

今まで使っていたエクセルにこんな機能が標準装備されていたなんて!何ともったいないことをしつづけていたのか・・・涙
これから、こんな魔法を身につけられるのかと思うとワクワクします。これからもよろしくお願いします。

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

[7310] イベントとフォーム講座演習第2回

tomoki1105さんからの投稿です。

こんにちは。

Control ToolのOptionButtonについて質問です。

OptionButtonをフォームに張り付けると、張り付けたOptionButtonの内一つしか選択できませんが、選択するカテゴリーを複数設定したい場合は設定可能なのでしょうか。
例えば性別に加え、会員もしくは非会員等のOptionのグループを加えたい場合の方法を教えて頂きたく。

宜しくお願い致します。

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

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

ながのさんからの投稿です。

はじめまして。
先週から学び始めたKAZといいます。よろしくお願いいたします。
今回質問があり、コメントさせてもらいました。

マクロの設定の場面で、私のエクセル(2013)では、
・全てのマクロを有効にする(推奨しません・・・)にチェックが入っており
・警告を表示して全てのマクロを無効にする を選ぶことができません。

これは、管理者が設定しているものなのでしょうか?
こちらで修正することができるのでしょうか?

マクロの設定に問題がなければいいのですが、少し気になって聞かせてもらいました。
教えてください。よろしくお願い致します。

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

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

ゲストさんからの投稿です。

さすが、達人。
説明もわかりやすいです!

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

[7299] 基礎講座第2章12 - ドリル5

大川真二さんからの投稿です。

練習問題6の間違いに気がつきました。構文の読み方に間違いはなかったのだなぁと改めて確認できました(*´꒳`*)

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

[7291] 基礎講座第2章11 - ドリル4

大川真二さんからの投稿です。

8を2日がかりで通過出来ました。何度も間違えながらも動画で確認をして声を出しながら進めて行くことで無事解決する
構文の読み方は自分が解りやすいように言い換えたりした方が楽ですね〜

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

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

高橋健太郎さんからの投稿です。

本当に初歩的なエクセルしか知らなかった。
マクロを習得することで、今まで貼り付けたテーターの仕分けや分析が楽しくなりそうです。

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

[7280]

多和田 真也さんからの投稿です。

遅くなりましたが、メールセミナーの9回目の宿題のファイルを添付、送信させていただきます。
どうぞよろしくお願いいたします。

ところで、宿題をやった際に、なぜか分からない点が出てきましたので教えてください。

伝票削除用に、deleteというsubプロシージャを作ってあるのですが、ボタンにマクロを登録する際、

Private Sub sakujyo_Click()
 delete
End sub

とすると、作成された伝票ではなく、シートmainが削除されてしまいます。そこで、やむなく提出したファイルでは、
Private Sub sakujyo_Click()
Dim Ws As Worksheet
Application.DisplayAlerts = False

For Each Ws In Worksheets
If InStr(Ws.Name, "main") = 0 Then
Ws.delete
End If
Next

Application.DisplayAlerts = True
End Sub

としてあります。

どのようにしたら、解消するでしょうか?

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

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

ゲストさんからの投稿です。

動画拝見させていただきました
ぱぱぱぱっ!とほんとに魔法みたいですね!
報告資料作成にかかる時間を短縮できればと思います
頑張りますので、よろしくお願いいたします

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

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

ゲストさんからの投稿です。

一言ですごいです。魔法を見てるようでした。こんな事が自分で出来るようになったらとワクワクしています。

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

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

ゲストさんからの投稿です。

自分が抱えている事務作業が少しでも楽になるのでは、という思いで拝見しました。
こびとちゃんのimageはすごく分かりやすかったです。あと可愛い。
コツコツと頑張っていきたいです。

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

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

受講生さんからの投稿です。

小川先生
お世話になっております。
単純ですが、シートにある勘定科目毎に伝票を集計し、合計を別シートのP/Lに書き出すマクロです。
1万行以上と金額が億単位だったので、マクロを動かしたら、ものすごくPCのスピードが落ちたので、
何10分まったら終わるのかとおもい途中でやめました。こういう場合はSUMIF関数の方がよいのでしょうか。
ちなみにPCのスペックは問題ありません。宜しくお願いします。

 Option Explicit
Sub hoge()
Dim gyo As Long
Dim goukei As Currency
Dim kubun As Long
For kubun = 12 To 226
goukei = 0
For gyo = 2 To 11419
If Worksheets("4月 (2)").Range("C" & kubun).Value = Worksheets("Sheet1 (2)").Range("K" & gyo).Value Then
goukei = goukei + Worksheets("Sheet1 (2)").Range("AE" & gyo).Value
End If
Worksheets("4月 (2)").Range("E" & kubun).Value = goukei
Next
Next

End Sub


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

[7262]

杉戸 雅敏さんからの投稿です。

マクロを活用して、材料の在庫表を作成したいのですが良くあることなのですが、PC上で計上された数量と実在庫数との違いが必ず発生してしまうことがあり、在庫に対する確定数にずれを生じてしまうのですが、こうした実数とのロスの問題点を解消するにはどんな点に注意をすべきでしょうか?

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

[7259] 簡単なマクロを書いてみる - プログラムの読み方

ゲストさんからの投稿です。

分かりやすい丁寧な解説ありがたです

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

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

ゲストさんからの投稿です。

説明が分かり易く馴染みやすいです。
強いて申し上げるならチョット早口かなぁ。

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

[7253] 発展1講座第4章 - For Each構文 セルのコレクション

受講生さんからの投稿です。

小川先生

For Each構文 の動画を拝見し、以下に記載するテストデータで
「F列に合計と記入されている行を削除する」
マクロが作れるか試してみました。
結果は、合計と記入されている行が複数残りました。

以下のようなテストデータの場合、For Each構文を使わずに
For Next構文等でマクロを組んだ方がよいのでしょうか?

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

【書いたコード】

  
Sub GoukeiSakujyo()
Dim rng As Range
Dim rngs As Range
Set rngs = Range("F1:F20")

For Each rng In rngs

Debug.Print rng.Address

If rng.Value = "合計" Then
Range(rng.Address).EntireRow.Delete
End If
Next
MsgBox "処理が完了しました"
End Sub 



【テストデータ】
|B列 |C列 |D列 |E列 |F列 |G列 |H列 |
---------------------------------------------------
1 行目 |○ |○ |○ |○ |○ |○ |○ |
---------------------------------------------------
2 行目 |○ |○ |○ |○ |合計 |○ |○ |
---------------------------------------------------
3 行目 |○ |○ |○ |○ |合計 |○ |○ |
---------------------------------------------------
4 行目 |○ |○ |○ |○ |合計 |○ |○ |
---------------------------------------------------
5 行目 |○ |○ |○ |○ |合計 |○ |○ |
---------------------------------------------------
6 行目 |○ |○ |○ |○ |合計 |○ |○ |
---------------------------------------------------
7 行目 |○ |○ |○ |○ |合計 |○ |○ |
---------------------------------------------------
8 行目 |○ |○ |○ |○ |合計 |○ |○ |
---------------------------------------------------
9 行目 |○ |○ |○ |○ |合計 |○ |○ |
---------------------------------------------------
10 行目|○ |○ |○ |○ |合計 |○ |○ |
---------------------------------------------------
11行目 |○ |○ |○ |○ |○ |○ |○ |
---------------------------------------------------
12行目 |○ |○ |○ |○ |合計 |○ |○ |
---------------------------------------------------
13行目 |○ |○ |○ |○ |合計 |○ |○ |
---------------------------------------------------
14行目 |○ |○ |○ |○ |合計 |○ |○ |
---------------------------------------------------
15行目 |○ |○ |○ |○ |合計 |○ |○ |
---------------------------------------------------
16行目 |○ |○ |○ |○ |合計 |○ |○ |
---------------------------------------------------
17行目 |○ |○ |○ |○ |合計 |○ |○ |
---------------------------------------------------
18行目 |○ |○ |○ |○ |合計 |○ |○ |
---------------------------------------------------
19行目 |○ |○ |○ |○ |合計 |○ |○ |
---------------------------------------------------
20行目 |○ |○ |○ |○ |合計 |○ |○ |
---------------------------------------------------

by domino

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

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

ゲストさんからの投稿です。

まだ全部は拝見出来ておりませんが、取っつき難そうなマクロが凄く身近に感じました。時間を作って、しっかり覚えたいと思います。よろしくお願い申し上げます。

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

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

ゲストさんからの投稿です。

ありがとうございました。これまでは、エクセルの計算式で自動化をしておりましたが、ファイルが大きくなるばかりで苦慮していました。今後はマクロでデータベースを構築出来るよう頑張ります。

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

[7245] 動的配列_3

田中 宏明さんからの投稿です。

扱うデータ数に応じて、配列の要素数を後から決定する方法「動的配列」を理解できました。
過去に自分が書いたマクロを見ていると、「静的配列」を「動的配列」に修正したくなります。

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

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

ゲストさんからの投稿です。

マクロについて、とても分かりやすく拝見しました。仕事で日々数値まとめをしているので、マクロができるようになれば、効率化できるし、しっかり身につけたいと思います。

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

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

佐野恵己さんからの投稿です。

わかりやすいです

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

[7239] フォローアップミニセミナーNo.10

多和田 真也さんからの投稿です。

小川先生

もしかしたら、今更な質問なのかもしれませんが、教えてください。

動画や模範解答の中では、自動記録で色を確認する際に、2桁の数字で色が指定されているようなのですが、私の利用している環境では

まったく違う指定になります。5桁の数字で表示されたり、もしくは全く違う表現で表示されたりします。

例えば、今回のミニセミナーNo.10の例では、水色の背景にする操作を自動記録すると、こんな感じで記録されます。

Sub Macro1()

With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent1
.TintAndShade = 0.599993896298105
.PatternTintAndShade = 0
End With
End Sub

できれば、動画の中で扱われているように、.Interior.ColorIndex = 8

のような、1桁とか2桁の数字で色番号が表記されるように自動記録の設定を変更したいと思っているのですが、その方法が分かりません。

どうしたらよいのでしょうか?

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

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

ゲストさんからの投稿です。

20年ほど前にBASICを使用していたので、久しぶりに思い出し興味がわきました。今の職場で使用する機会があるかわかりませんが、固くなった頭のよい運動になりそうです。楽しみにしています。

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

[7233] 「イベントとフォーム」プレセミナー第5回

受講生さんからの投稿です。

定数の機能に驚きました。確かにマクロのメンテナンス性が高くなりますね。
今まで書いていたマクロを見直ししたいと思います。

by domino

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

[7231]

ゲストさんからの投稿です。

業務のメインパソコンはEXCEL2010です。
情報セキュリティの関係で、業務パソコンへのデータ持ち込み・持ち出しは難しいです。
WEBからのダウンロードやスマホ持ち込みは可。

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

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

受講生さんからの投稿です。

建設コンサルタントで働く場合、エクセルマクロの知識は必要ですか?

また、ネット上にある情報のうち、自分に必要なものだけを大量に集めるやり方はありますか?

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

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

受講生さんからの投稿です。

シート削除のマクロで、for each構文、Select Case構文の組み合えわせたコードが参考になりました。実務で使えそうなのでマスターしたいです。

by domino

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


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

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

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

トップへ