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

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

[12528]動的配列3-演習

2020-10-23 06:07:22 たかちゃんさんからの投稿です。

最初はUbound(moto,1) の時に 1が返ってくる理由が理解できませんでしたが下のコメントにあった通り、2次元配列で長方形の入れ物ができた状態で
X軸・Y軸を思い浮かべたら分かりました。

Ubound(moto,1) だと1次元なので、X軸(横方向)なので1。
その後、何度か自力で書く練習をしていたら、今はだいぶしっかり理解できたと思います。


コメント10331:
Dim vList(1, 32) As Variant
であれば、横2,縦33の長さの長方形ができあがる、ということです。
[a] 横サイズ2(0から1まで)
[b] 縦サイズ33(0から32まで)

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

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

2020-10-21 05:40:40 たかちゃんさんからの投稿です。

【感想】
発展編1を終了後、一通り復習して戻ってきました。
基礎編から初めてちょうど2ヶ月経ちましたが、自分でも驚くほど上達しました。良い先生に勉強方法からきちんと指導して貰えると、こんなにも違うんですね。今、このタイミングで本当に良い教材に会えて良かったと心から思います。現在、某国で特に仕事もしていないので、直ぐに実践に生かせず残念ですが。。今回の経験を通じてプログラミング能力だけでなく、自信もついてきました。(^^)

今のレベルはと言うと、一番苦戦したカレンダー課題も(前回から日が空いて記憶も薄れている状態でも)多少考えながらリラックスして、なんとか動くプログラムが書ける状態までになりました。

業務では社内ヘルプ、サーバー部門でのエンジニアさんのアシスタント、営業事務&売上管理などを行っていて、エクセルは良く使っていましたが、マクロは自動記録を使っていた程度です。

過去の質問者さんとのやり取りも本当に勉強になりました。良い質問が出尽くしていて、疑問はコメントをチェックするだけで殆ど解決しました。また、「励ましの言葉を下さい」といったコメントに対する先生の回答にも、何度か励まされました。
それでは、そろそろ発展2へ進もうと思います。引き続き宜しくお願いします。

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

[12516]各部署からファイルを回収し、記入済データを手元資料に統合その2

2020-10-15 22:24:32 受講生さんからの投稿です。

小川 塾長
質問させて頂きます。
If mitsukatta=false then
についてですが、追加があった時だけが当てはまるのでしょうか?
range(“A”&moto).Value = “”の時も当てはまりそうに感じるのですが、
実行しても、空白の値が追加されるという事はありません。
そこがどうにも腑に落ちないのですが、私の考え方がおかしいのでしょうか?

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

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

2020-10-13 06:24:43 たかちゃんさんからの投稿です。

発展編1が一通り終了したので、次へ進む前に復習がてら基本編に戻って見ました。最初は、For each と.Offset(c,cyoko)の様な感じで書こうかと思ったのですが、For eachではcやcyokoなどの変数を使ってピンポイントで指定して書くことはできないのだと気付きました。(コレクションのプロパティを指定する時に使うものだから。) 
for構文とOffsetを使って書いてみましたので投稿します。他の方のコメントにあったランキングにも挑戦してみました。
繰り返せば繰り返すほど、新たな学びがあって本当に良い講座です。

Sub rensyu()
    Dim c As Long
    Dim cyoko As Long
    Dim mx As Long
    Dim cMX As Long
    Dim cyokoMX As Long
    
    mx = Range("H1048576").End(xlUp).Row - 6
    With Range("C6")
    cMX = 0
    cyokoMX = 0
    For c = 0 To mx
        For cyoko = 0 To 5
            If .Offset(c, cyoko).Value > .Offset(cMX, cyokoMX).Value Then
                cMX = c
                cyokoMX = cyoko
            End If
        Next
    Next
    Range("K4").Value = .Offset(cMX, -1).Value
    Range("L4").Value = .Offset(-1, cyokoMX).Value
    Range("M4").Value = .Offset(cMX, cyokoMX).Value
    End With
    
End Sub


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

[12505]エクセル仕事を劇的に簡単にするDPRフレームワークその3

2020-10-12 09:52:50 るるさんからの投稿です。

「D」と「R」の違いがよくわかりました。少しでも加工されたものは「R」となり、扱いづらいものになるのですね。最終的に必要なのは「R」だとしても、そのもととなる「D」があることで作業効率が大きく変わることがわかりました。何とか作り上げるということよりも、もっとシンプルにするにはどうしたらいいのかにこだわっていきたいと思います。

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

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

2020-10-10 18:40:22 ゲストさんからの投稿です。

いつもお世話になっております。
宿題を提出いたします。
添削の方を宜しくお願い致します。
マクロ記録やステップインして確認して作成しました。

伝票作成ボタン等を作成する際に、気になったのがフォームコントロールとActiveXコントロールの違いです。
今回は、フォームコントロールボタンを使いました。
こちらのボタンの方がいい等ありましたら、ご教授お願いしたいです。よろしくお願いいたします。

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

[12490]基礎講座第1章3 – 色の指定

2020-10-10 12:15:19 受講生さんからの投稿です。

小川さん
お世話になっております。
1点質問なのですが、ヘルプを開こうとF1を押すと「visual basic ヘルプを表示するにはインターネット接続が必要ですが、管理者によって接続が許可されていません」
というエラーメッセージが表示されて開くことが出来ません。
*Excel2016を使用しております。

上記対処法をネットで探したのですが2016に関しては掲載されていません。何か対処法がありましたら、ご教示いただきたくよろしくお願いいたします。
なお、私は会社支給PCを使って学習しているので、支給元の会社IT管理者により縛られており変更することは出来ないということでしょうか。。。?

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

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

2020-10-07 04:42:13 たかちゃんさんからの投稿です。

かなり苦労しましたが、やっとここまで辿り着きました。カレンダー作成の最初の方の動画では模範解答をノートに書いて(写経?!)構造理解に努めました。Do LoopやWith構文、FormulaやDateaddの理解があやふやだったので、とても良い復習になりました。今回のOffsetの使い方も、本当にためになりました。

今回はControlシートで、曜日がA1から縦に日曜日(weekdayの規定値1)、月曜日(weekdayの規定値2)、火曜日(weekdayの規定値3)・・・土曜日(weekdayの規定値7)の順で並んでいる。なので、Offsetと組み合わせて、所定の曜日を見に行くと言うことですね。わずか2行追加でできるなんてびっくりしました。

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

[12485]補講9-たった1行のコードでセルのデータを配列に投入する

2020-10-06 17:30:47 受講生さんからの投稿です。

いつもお世話になっております。
どの講座も新しい発見があり、勉強をするのがとても楽しいです。

実は、私も『エクセルマクロ・発展編2演習と回答』の案内メールが確認できません。
お手数ですが、ご確認いただけますでしょうか。
よろしくお願いいたします。

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

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

2020-09-30 03:19:45 たかちゃんさんからの投稿です。

これは便利ですね。
因みに、macOS環境だと、vbNewLineの代わりにChr(13)を使って動きました。導入編からずっと勉強してきて、これまで”ファイルパスの区切り文字”以外は全てWindowsと一緒でしたが、今回の改行もWindowsと違うようです。
macOSで書いたプログラムをWindowsユーザへ渡す時は、殆ど一緒ですが要注意ですね。。。

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

[12471]VLookUp関数、Index関数、Match関数より便利なマクロ-該当する行が見つからない場合の処理をアレンジ

2020-09-28 14:28:47 受講生さんからの投稿です。

いつもお世話になっています。
質問致します。
false、trueは、変数では無いのですね?
(確かに、Dimで宣言もしてません。)
他の文字に変えたらうまく行きませんでした。

なにか特別な意味を持つキーワードなのでしょうか?



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

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

2020-09-28 10:26:51 たかちゃんさんからの投稿です。

【宿題】
いつもお世話になります。課題を提出致します。
どうぞ宜しくお願い致します。

Option Explicit
Dim retsu As String

Public Sub create_denpyo()
write_no
retsu = “b” ‘取引先で並び替え
sort
exe_create_denpyo
retsu = “a” ‘番号で並び替え
sort
End Sub

Private Sub exe_create_denpyo()
delete_denpyo
Dim infoSh As Worksheet
Dim infoGyo As Long
Dim infoGyoMx As Long
Dim shTo As Worksheet
Dim shtoGyo As Long
Dim dt As Date
Dim sKaisha As String

Set infoSh = Worksheets(“main”)
infoGyoMx = infoSh.Range(“b1048576”).End(xlUp).Row

For infoGyo = 2 To infoGyoMx
If sKaisha <> infoSh.Range(“b” & infoGyo).Value Then
If infoGyo <> 2 Then
keisen
End If
Worksheets(“main1”).Copy after:=Worksheets(Worksheets.Count)
Set shTo = ActiveSheet
sKaisha = infoSh.Range(“b” & infoGyo).Value
shTo.Name = sKaisha
shtoGyo = 16

End If
‘データ転記
shTo.Range(“e” & shtoGyo).Value = infoSh.Range(“d” & infoGyo).Value
shTo.Range(“f” & shtoGyo).Value = infoSh.Range(“e” & infoGyo).Value
shTo.Range(“h” & shtoGyo).Value = infoSh.Range(“f” & infoGyo).Value
If infoSh.Range(“g” & infoGyo).Value > 0 Then
shTo.Range(“i” & shtoGyo).Value = infoSh.Range(“g” & infoGyo).Value
Else
shTo.Range(“j” & shtoGyo).Value = infoSh.Range(“g” & infoGyo).Value
End If
If shtoGyo = 16 Then
shTo.Range(“k” & shtoGyo).Value = infoSh.Range(“g” & infoGyo).Value
Else
shTo.Range(“k” & shtoGyo).Value = infoSh.Range(“g” & infoGyo).Value + shTo.Range(“k” & shtoGyo).Offset(-1).Value
End If
dt = infoSh.Range(“c” & infoGyo).Value
shTo.Range(“b” & shtoGyo).Value = Right(Year(dt), 2)
shTo.Range(“c” & shtoGyo).Value = Month(dt)
shTo.Range(“d” & shtoGyo).Value = Day(dt)
shtoGyo = shtoGyo + 1
Next
keisen
End Sub

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

Private Sub keisen()
Dim inMx As Long
inMx = Range(“b1048576”).End(xlUp).Row

With Range(“B16:K” & inMx + 1)
.Borders(xlDiagonalDown).LineStyle = xlNone
.Borders(xlDiagonalUp).LineStyle = xlNone
With .Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = 1
End With
With .Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = 1
End With
With .Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = 1
End With
With .Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = 1
End With
With .Borders(xlInsideVertical)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = 1
End With
With .Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = 1
End With
End With
End Sub

Private Sub sort()
Dim inMx As Long
inMx = Range(“b1048576”).End(xlUp).Row

Range(retsu & “1”).Select
With ActiveWorkbook.Worksheets(“main”).sort.SortFields
.Clear
.Add _
Key:=Range(retsu & “2:” & retsu & inMx), _
Order:=xlAscending
End With
With ActiveWorkbook.Worksheets(“main”).sort
.SetRange Range(“A1:G” & inMx)
.Header = xlYes
.Apply
End With
End Sub

Private Sub write_no()
Dim inGyo As Long
Dim inMx As Long
inMx = Range(“b1048576”).End(xlUp).Row

Range(“a1”).Value = “No.”
For inGyo = 2 To inMx
Range(“a” & inGyo).Value = inGyo – 1
Next

End Sub

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

[12466]エクセル仕事を劇的に簡単にするDPRフレームワークその4

2020-09-27 22:02:57 FUMIKAさんからの投稿です。

今回の動画でD→P→Rの大切さがよくわかりましたし、データとレポートの違いが理解できました。
今まで私がデータだと思っていたものはレポートだったし、今まではいきなりレポートを作ろうとしていたことがわかりました。
早速エクセルでデータを作成しています。

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

[12465]商品ごと、年ごとの販売額合計をピボットテーブルのように出力する(その1)

2020-09-27 15:48:07 ゲストさんからの投稿です。

今回の動画は、音声が聞き取りにくかったです。
1.音が割れている
2.小川先生のサ行とタ行が聞き取りにくい
3.音飛びしている(1:17~1:20頃、7:00頃、8:19頃)
4.たびたび雑音が入る(8:30以降)
一度目に聞いた時は、音が気になって内容がほとんど入ってこなかったです(笑

マクロの内容については、実務で出番の多い内容だと感じました。
以前小川先生に質問させていただいた内容に似ていたためか、なにも見ずに書けました。
質問する前に、この動画で演習しておけば良かったんだと思いました。小川先生、すみませんでした。
基礎編をしっかり身につけておくのは、本当に大切ですね。

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

[12462]エクセル仕事を劇的に簡単にするDPRフレームワークその1

2020-09-27 12:16:25 受講生さんからの投稿です。

エクセルで記録する時にどのような表が一番使いやすいかということがよく理解できました。
良かれと思って途中で集計したり、セルを結合したり、空白があると後の作業が面倒になるので、一連の作業の流れを考えて作成していきたいと思います。

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

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

2020-09-26 06:08:20 たかちゃんさんからの投稿です。

最後のA列に降った番号並び替えで、すでにワークシートが指定されているので
shFm.Activateを最後に入れなくても動きましたが。やっと一通りできました。(^^)
自分で考えたマクロは罫線を1行1行引いたり、動けば良いや的なマクロでした。
見本解答は、思いもつかない方法で、とても勉強になりました。


Sub bango_narabikae()
Dim saigo As Long
saigo = Worksheets(“main”).Range(“b1048576”).End(xlUp).Row

Range(“A1”).Select
ActiveWorkbook.Worksheets(“main”).Sort.SortFields.Clear
ActiveWorkbook.Worksheets(“main”).Sort.SortFields.Add
 Key:=Range(“A2:A” & saigo), _
Order:=xlAscending

With ActiveWorkbook.Worksheets(“main”).Sort
.SetRange Range(“A1:G” & saigo)
.Header = xlYes
.Apply
End With
End Sub

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

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

2020-09-25 03:17:45 たかちゃんさんからの投稿です。

伝票作成は、0から作成しようとすると一瞬不安になりましたが、落ち着いてゆっくりでしたが書けました!
恐らく仕事で、「初めて作成する物」だったり「もし作成出来なかったらどうしよう?」みたいな環境だと
パニックになってしまいそうですが・・・。
今回は、見本と1行づつ見比べた所、ほぼ同じようにかけて満足です。

3つ疑問が出来たので、質問させて下さい。

【1つ目】Setで設定する位置について。
これは、Dim 〇〇と全部宣言を書いたあとで、Set〜と書くのと、
Dim shFm as worksheet と書いた後に、直ぐにSet〜と書くのでは
どちらの書き方が推奨というのはありますか?(どちらでも動きますが、気になったので。)
Set shFm = Worksheets(“main”)


【2つ目】dt = shFm.Range(“C” & lnFm).Valueの設定する位置について。
この↓の記述の直前に設置した方が良いのか?、For lnFm = 2 To lnFmMxの直後に書いた方が良いのか?
迷いました。結局、動くので同じなんですが、設定するのは動作に影響が出ない範囲でなるべく上の方がいいのかなぁと
一瞬思ったんですが、推奨する位置とかありますか。

shTo.Range(“B” & lnTo).Value = Right(Year(dt), 2)
shTo.Range(“C” & lnTo).Value = Month(dt)
shTo.Range(“D” & lnTo).Value = Day(dt)

【3つ目】書いているとついつい、見やすいように空白行を入れてしまうことがあります。
見本を見ると、タブで横にはずれているものの、殆ど詰めて書いてありました。
空白行は、こんな時以外は入れない方が良いなどありますか?

先生の講座は本当に楽しいです。
最初は伝票が作れたら満足って思っていましたが、今では密かに講座を全制覇目指すことも可能じゃないか?と
思いはじめました。(^^;
本当に良い講座に出会えました。

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

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

2020-09-24 21:04:11 ゲストさんからの投稿です。

お世話になっております。
先程、この質問ホームから送信しました松本です。
もう一度以下の通り行いましたら、エラーにはなりませんでしたが、小数点以下が表示されました。
このような場合は、どのようにしたらよいのでしょうか。
合わせて教えていただければ幸いです。

Sub renshu2()
Dim zeikin2
zeikin2 = Range(“b1”).Value / 100 + 1
Range(“C4”) = Range(“b4”) / zeikin2

End Sub

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

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

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

2020-09-24 09:34:20 たかちゃんさんからの投稿です。

Application.DisplayAlerts は、変数宣言後にFalseと設定
プログラムの終わりにTrueと設定し元に戻すのですね。

最初に解説をよく見ないで最後に、Application.DisplayAlerts を設定し
あれ効かない?!と焦って、ネットで暫く調査していました。
しかも運が悪いことに、2016年当時の某サイトの投稿でExcel for 2016だとDisplay Alertsは効かないと書いてある投稿を見て、回避策はないものか暫くさがしていました。。。
しかし、セミナーの動作確認済みデータを確認した所、正常動作。
改めて確認した所、単純な設定ミスでした。
自分はmacOS版のエクセルを使っているので、少し動作がおかしいと
直ぐにmacOS版だから動作が変なのか?!と疑ってしまう癖があって反省です。(^^;

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

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

2020-09-23 10:56:47 たかちゃんさんからの投稿です。

【感想】
ミニセミナーは1周目を完了し、現在2周目です。

最初の頃は、変数の使い方で混乱していましたが、練習と発展編ビデオを再視聴する事で今は混乱することも無くなりました。
1回目は聞いて手を動かす、2回目は手を動かしつつ、気になる事はノートにメモしながら試聴。つまずいた時にメモを再確認した所、頭の中で情報が整理されてきました。


混乱していた事1)
オブジェクト型変数(特に.valueを付けた時)
Dim rg as range
rg.value

データ型の変数
Dim n as string
の使い分け

混乱していた事2)
Setの使い方。

2周目のミニセミナーが終了したら、Do Loop構文を復習。
その後、メールセミナーに進みつつ、基礎編の問題を発展編の知識で解き直すのも同時進行で進めて行こうかなと思います。

変数も構文の使い方も本当に説明が分かりやすいです。何故この変数を使うのか?使わないとどうなるのか?の説明まであるのと、先生が動画でわざと間違えてくれて、修正している様子が本当に勉強になります。(^^)

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

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

2020-09-21 08:11:01 ナオさんからの投稿です。

シートの見出しカラー番号をマクロの自動記録で確認する時、動画では
.ColorIndex =13と表示されていますが、私のエクセル(2019)で実行してみると .Color = 10498160と表示されます。.ColorIndex と表示させるのに何か設定?とかありますでしょうか。
また過去コメントをキーワードで検索する事は可能でしょうか。

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

[12436]VLookUp関数、Index関数、Match関数より便利なマクロ-該当する行が見つからない場合の処理をアレンジ

2020-09-20 12:27:57 ゲストさんからの投稿です。

お世話になっています。
今回の「フラグ」という概念は、
「if文で条件一致するグループと条件一致しないグループの二つのグループに分けている」ように感じたのですが、
その理解で良いでしょうか?

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

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

2020-09-20 05:42:25 たかちゃんさんからの投稿です。

for each構文、自分で何も見ないで書くと意外と変なミスをしてしまいます。
説明を受けると何でこんなミスをしてしまったんだろう?!という感じですが。。(><)↓こんな感じです。
Set rg = Range(“E4:E13”).Value
For Each rg In Range
その度に発展編の該当動画に戻って見たりしています。
今はこんな感じで苦戦していますが、
発展編の動画は本当に分かりやすくて感動しました。

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

[12428]商品ごと、年ごとの販売額合計をピボットテーブルのように出力する(その2-2)

2020-09-15 02:04:19 たかちゃんさんからの投稿です。

遂にここまで到達しました。
アドバンスドは、動画1〜動画17を2回繰り返し、動画18〜20と来ました。後半も迷いつつも、意外とあっさり出来ました。(^^)
基本のパターンがあるなんて、この講座を受講するまで知りませんでした。
パターン知っていると全然違いますね。
アドバンドも解答方法がパッと思いつくまで繰り返して、発展編へ進もうと思います。

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

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

2020-09-13 18:33:47 受講生さんからの投稿です。

小川さん いつもお世話になっております。

下記課題を提出します。添削のほどよろしくお願いいたします。

追記:
A列のデータを初期化するやり方はわかりましたが、課題1の印刷設定がいまいちわかりませんでした。
とりあえず、googleで調べながらヘッダーにシート名、ヘッダーに番号を挿入、といった設定をしました。

Option Explicit
'全体処理
Sub Main()
    Denpyyo_Delete
    Print_Set
    No_Add
    Torihikisaki_Asccending_Order
    Denpyo_Create
    No_Asccending_Order
    No_Delete
End Sub

'取引先毎に伝票作成
Sub Denpyo_Create()
    Denpyyo_Delete
    Dim WFm As Worksheet
    Dim WTo As Worksheet
    Dim CFm As Long
    Dim CFmMax As Long
    Dim CName As String
    Dim CSum As Long
    Dim Cnt As Long
    Dim Dt As Date
    Set WFm = Worksheets("main")
    CFmMax = WFm.Range("B65536").End(xlUp).Row
    Cnt = 16
    
    For CFm = 2 To CFmMax
        If CName <> WFm.Range("B" & CFm).Value Then
            If CFm <> 2 Then
                Denpyo_DrawLine
            End If
            
            Cnt = 16
            CName = WFm.Range("B" & CFm).Value
            Sheets("main1").Copy After:=Worksheets(Worksheets.Count)
            Worksheets(Worksheets.Count).Name = CName
            Set WTo = ActiveSheet
        End If
            
        WTo.Range("H" & Cnt).Value = WFm.Range("F" & CFm).Value
        WTo.Range("E" & Cnt).Value = WFm.Range("D" & CFm).Value
        WTo.Range("F" & Cnt).Value = WFm.Range("E" & CFm).Value
                
        Dt = WFm.Range("C" & CFm).Value
        
        WTo.Range("B" & Cnt).Value = Right(Year(Dt), 2)
        WTo.Range("C" & Cnt).Value = Month(Dt)
        WTo.Range("D" & Cnt).Value = Day(Dt)
        
        CSum = WFm.Range("G" & CFm).Value
        If CSum < 0 Then
            WTo.Range("J" & Cnt).Value = CSum
        Else
            WTo.Range("I" & Cnt).Value = CSum
        End If
        WTo.Range("K" & Cnt).Value = WTo.Range("K" & Cnt - 1).Value + CSum
        Cnt = Cnt + 1
    Next
    Denpyo_DrawLine
    
End Sub
'mainシートのNoを追加
Sub No_Add()
    Dim WFm As Worksheet
    Dim CFmMax As Long
    Set WFm = Worksheets("main")
    CFmMax = WFm.Range("B65536").End(xlUp).Row
    
    WFm.Range("A1").Value = "No"
    WFm.Range("A2").FormulaR1C1 = "1"
    WFm.Range("A3").FormulaR1C1 = "2"
    WFm.Range("A2:A3").AutoFill Destination:=WFm.Range("A2:A" & CFmMax)
End Sub
'取引先名称を昇順
Sub Torihikisaki_Asccending_Order()
    Dim WFm As Worksheet
    Dim CFmMax As Long
    Set WFm = Worksheets("main")
    CFmMax = WFm.Range("B65536").End(xlUp).Row
    
    WFm.Range("A1:G" & CFmMax).Sort _
    Key1:=WFm.Range("B1"), _
    Order1:=xlAscending, _
    Header:=xlYes

End Sub
'NOを昇順
Sub No_Asccending_Order()
    Dim WFm As Worksheet
    Dim CFmMax As Long
    Set WFm = Worksheets("main")
    CFmMax = WFm.Range("B65536").End(xlUp).Row
    
    WFm.Range("A1:G" & CFmMax).Sort _
    Key1:=WFm.Range("A1"), _
    Order1:=xlAscending, _
    Header:=xlYes
End Sub

'伝票を削除
Sub Denpyyo_Delete()
    Dim Wks As Worksheet
    Application.DisplayAlerts = False
    
    For Each Wks In Worksheets
        If Left(Wks.Name, 4) <> "main" Then
            Wks.Delete
        End If
    Next Wks
    
    Application.DisplayAlerts = True

End Sub

' 課題2 A列のデータ全て削除
Sub No_Delete()
    Dim WFm As Worksheet
    Set WFm = Worksheets("main")
    WFm.Columns("A:A").ClearContents

End Sub
'伝票の線を引く
Sub Denpyo_DrawLine()
    Dim CFmMax As Long
    CFmMax = ActiveSheet.Range("B65536").End(xlUp).Row
    
    With Range("B16:K" & CFmMax).Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .Weight = xlThin
    End With
    With Range("B16:K" & CFmMax).Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .Weight = xlThin
    End With
    With Range("B16:K" & CFmMax).Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .Weight = xlThin
    End With
    With Range("B16:K" & CFmMax).Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .Weight = xlThin
    End With
    With Range("B16:K" & CFmMax).Borders(xlInsideVertical)
        .LineStyle = xlContinuous
        .Weight = xlThin
    End With
    With Range("B16:K" & CFmMax).Borders(xlInsideHorizontal)
        .LineStyle = xlContinuous
        .Weight = xlThin
    End With
End Sub

'課題[1] プリンター設定のみ
'シート毎に設定すると手間がかかるので最初の型sheet(main1)にて印刷形式を設定
Sub Print_Set()
 
    '印刷設定
    With Worksheets("main1").PageSetup
        .PrintArea = "B:K"  '印刷範囲の設定
        .Zoom = False       '倍率をクリア
        .FitToPagesWide = 1 '横方向に1ページに収める
        .FitToPagesTall = 1 '縦方向に1ページに収める
        .Orientation = xlPortrait  '印刷:縦向き
        .CenterHeader = "&B&A&20"  '中央ヘッダーにsheet名と同じ名前を記載
        .RightHeader = "&D"  '右ヘッダーへ当日日付
        .CenterFooter = "- " & "&P" & " -"  'フッターの設定
    End With
    
    '印刷プレビュー
    'Worksheets("main1").PrintPreview
End Sub

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

[12423]データ記入用ファイルを配布する-その2

2020-09-13 08:32:10 たかちゃんさんからの投稿です。

【感想】
・For文前にて、Workbooks 〜 Sheets(“歳入”).Selectの1文漏れ
・その他、自動マクロからコピーした部分に、Workbooks〜の記入漏れ
・自動マクロで記録時のファイルの拡張子と、部署情報シートにあるファイル名の拡張子が異なることにより出る実行時エラー。

以上、3点の罠にはまって数時間悩みました。(><) 落ち着いてゼロから書き直して解決しました。正確に記述することの大切さを思い知らされた問題でした。


エラー詳細:
Visual Basic for application
実行時エラー’1004′:
変更を’a.xls’に保存できませんでしたが、テンポラリードキュメント ‘8E440000’に保存されました。既存のドキュメントを閉じて、テンポラリドキュメントを開き新しい名前を付けて保存してください。

自動マクロで記録時のファイルの拡張子と、部署情報シートにあるファイル名の拡張子が異なると上記のエラーが出る模様。

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

[12422]データ転記先のシートすべてに対し、罫線を引く等の後処理をする

2020-09-13 00:16:51 ゲストさんからの投稿です。

感想です。
マクロ記録を使いながら、何も見ることなく伝票作成マクロを作成できるようになりました。
仕上がったマクロがサクサク動いているのを見るとうれしいです。

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

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

2020-09-12 15:54:44 受講生さんからの投稿です。


小川先生

お世話になっております。
hiroと申します。

発展編1 フォローメールセミナー 第11回の
追加要件のマクロを作成しました。
問題文を間違って解釈しているかもしれませんが、
添削の程、宜しくお願い致します。

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

[12418]各部署からファイルを回収し、記入済データを手元資料に統合その2

2020-09-12 02:04:14 たかちゃんさんからの投稿です。

【感想】
ここまで動画4以外は悩むことなく順調でしたが、ここに来てつまづきました。( ><) 類似問題(動画6)では問題なかったのですが。

アドバンスドに来て、値の記述が長くなることが多かった為、プログラムを書いていて「面倒だなぁ」とか「若干、頭が混乱するなぁ」と感じることがあり少し気にはなっていたのです。

良い機会なので、ここで動画1に戻って再度復習してから最後のピボットテーブルに挑戦することにしました。 

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

[12416]各部署からファイルを回収し、記入済データを手元資料に統合その1

2020-09-11 10:10:02 たかちゃんさんからの投稿です。

vbaが分かってくるようになると、世界変わりますね。。。(^^
基礎編の知識でも、ここまで色々できるなんて感動しました。

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


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

 

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

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

トップへ