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

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

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

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

新見陽子さんからの投稿です。

お世話になります。
①の問題で、 mitsuketa = False の上下にある変数の定義の順序を、以下のように入れ替えてマクロを実行した場合、
顧客リストのID1に一致するものが、キャンペーン応募状況の表にはないので、ID1が30行目に追加されそうな気がするのですが、
追加されません。それどころか、ID46、ID33も追加されませんでした。F8で動きを追ってみたのですが、
なぜ、無視されるのかわかりません。なぜなんでしょう?

Sub mondai201_01()
Dim hida
Dim migi
Dim mitsuketa
Dim tenkisaki

tenkisaki = 30

For hida = 4 To 29 '←ここと
mitsuketa = False
For migi = 11 To 21 '←ここです
If Range("A" & hida).Value = Range("E" & migi).Value Then
Range("C" & hida).Value = Range("F" & migi).Value
mitsuketa = True
Exit For
End If
Next
If mitsuketa = False Then
Range("A" & tenkisaki).Value = Range("E" & migi).Value
Range("C" & tenkisaki).Value = Range("F" & migi).Value
tenkisaki = tenkisaki + 1
End If
Next

End Sub

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

[7764] 文字列を様々に解析して条件分岐

新見陽子さんからの投稿です。

問題[2]で、>0を入れずに以下のように作成しても、マクロが実行されたのですが、なぜでしょうか?
マクロが気を利かせてくれたのでしょうか?これでも不都合はないですか?

Sub miyakojima()
Dim gyo
For gyo = 2 To 22
If InStr(Range("B" & gyo).Value, "都島") Then
Range("J" & gyo).Value = "都島グループです"
End If
Next
End Sub

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

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

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

小川先生

コメント有難うございます。
「英単語1語の言葉」の選択には、要注意ですね。

「ハンガリアン記法」の動画を見直してみたいと思います。

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

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

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

小川先生

最大値が複数存在した場合についてのコードを投稿します。
よろしくお願いします。

【課題を以下の通り、設定しています。】
 問題[1] 一番得点の高い人が複数いた場合でも抽出可能にする
 問題[2] 残業時間が一番多い人が複数いた場合でも抽出可能にする
 問題[3] 残業時間が一番多い人が複数いた場合でも抽出可能にする


'**************************************************************
'問題[1] 一番得点の高い人が複数いた場合でも抽出可能にする
'**************************************************************

Sub katinuki()

Dim gyou As Long
Dim kati As Long

'処理1
kati = 2
For gyou = 2 To 11
If Range("G" & kati).Value < Range("G" & gyou).Value Then
kati = gyou
End If
Next gyou
' Range("J" & kati).Value = "最高点です" '←不要かも

'処理2
For gyou = 2 To 11
If Range("G" & kati).Value = Range("G" & gyou).Value Then
Range("J" & gyou).Value = "最高点です"
End If
Next gyou
End Sub

'**************************************************************
'問題[2] 残業時間が一番多い人が複数いた場合でも抽出可能にする
'**************************************************************

Sub kati2()

Dim gyou As Long
Dim Migi As Long
Dim kati As Long

'処理1
kati = 6
Migi = 4
For gyou = 6 To 33
If Range("C" & kati).Value < Range("C" & gyou).Value Then
kati = gyou
End If
Next gyou
' Range("K" & Migi).Value = Range("B" & kati).Value '←不要かも
' Range("L" & Migi).Value = Range("C" & "5").Value '←不要かも
' Range("M" & Migi).Value = Range("C" & kati).Value '←不要かも

'処理2
For gyou = 6 To 33
If Range("C" & kati).Value = Range("C" & gyou).Value Then
Range("K" & Migi).Value = Range("B" & gyou).Value
Range("L" & Migi).Value = Range("C" & "5").Value
Range("M" & Migi).Value = Range("C" & gyou).Value
Migi = Migi + 1
End If
Next gyou
End Sub

'**************************************************************
'問題[3] 残業時間が一番多い人が複数いた場合でも抽出可能にする
'**************************************************************

Sub kati3()

Dim gyou
Dim Migi As Long '追加
Dim kati
Dim retu
Migi = 4 '追加

retu = "C"
kati = 6

'処理1
For gyou = 6 To 33
If Range(retu & kati).Value < Range("C" & gyou).Value Then
retu = "D"
kati = gyou
End If
Next gyou

For gyou = 6 To 33
If Range(retu & kati).Value < Range("D" & gyou).Value Then
retu = "D"
kati = gyou
End If
Next gyou

For gyou = 6 To 33
If Range(retu & kati).Value < Range("E" & gyou).Value Then
retu = "E"
kati = gyou
End If
Next gyou

For gyou = 6 To 33
If Range(retu & kati).Value < Range("F" & gyou).Value Then
retu = "F"
kati = gyou
End If
Next gyou

For gyou = 6 To 33
If Range(retu & kati).Value < Range("G" & gyou).Value Then
retu = "G"
kati = gyou
End If
Next gyou

For gyou = 6 To 33
If Range(retu & kati).Value < Range("H" & gyou).Value Then
retu = "H"
kati = gyou
End If
Next gyou

' Range("K" & Migi).Value = Range("B" & kati).Value '←不要かも
' Range("L" & Migi).Value = Range(retu & "5").Value '←不要かも
' Range("M" & Migi).Value = Range(retu & kati).Value '←不要かも

'処理2
For gyou = 6 To 33
If Range(retu & kati).Value = Range("C" & gyou).Value Then
Range("K" & Migi).Value = Range("B" & gyou).Value
Range("L" & Migi).Value = Range("C" & "5").Value
Range("M" & Migi).Value = Range("C" & gyou).Value
Migi = Migi + 1
End If
Next gyou

For gyou = 6 To 33
If Range(retu & kati).Value = Range("D" & gyou).Value Then
Range("K" & Migi).Value = Range("B" & gyou).Value
Range("L" & Migi).Value = Range("D" & "5").Value
Range("M" & Migi).Value = Range("D" & gyou).Value
Migi = Migi + 1
End If
Next gyou

For gyou = 6 To 33
If Range(retu & kati).Value = Range("E" & gyou).Value Then
Range("K" & Migi).Value = Range("B" & gyou).Value
Range("L" & Migi).Value = Range("E" & "5").Value
Range("M" & Migi).Value = Range("E" & gyou).Value
Migi = Migi + 1
End If
Next gyou

For gyou = 6 To 33
If Range(retu & kati).Value = Range("F" & gyou).Value Then
Range("K" & Migi).Value = Range("B" & gyou).Value
Range("L" & Migi).Value = Range("F" & "5").Value
Range("M" & Migi).Value = Range("F" & gyou).Value
Migi = Migi + 1
End If
Next gyou

For gyou = 6 To 33
If Range(retu & kati).Value = Range("G" & gyou).Value Then
Range("K" & Migi).Value = Range("B" & gyou).Value
Range("L" & Migi).Value = Range("G" & "5").Value
Range("M" & Migi).Value = Range("G" & gyou).Value
Migi = Migi + 1
End If
Next gyou

For gyou = 6 To 33
If Range(retu & kati).Value = Range("H" & gyou).Value Then
Range("K" & Migi).Value = Range("B" & gyou).Value
Range("L" & Migi).Value = Range("H" & "5").Value
Range("M" & Migi).Value = Range("H" & gyou).Value
Migi = Migi + 1
End If
Next gyou
End Sub


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

[7578] とびとびに存在するデータを拾って加工する

新見陽子さんからの投稿です。

はじめまして。2017年12月からこちらでマクロを勉強し始めました。
フォローアップでは、まず自分でマクロを作ってみてから答えや動画を見ています。
今回、自分で書いたマクロでは数列は使ってなかった(2015年2月5日の匿名さんと、そっくりのマクロでした)のですが、
動画では数列を使っていました。この式で数値がこう変わる、って結果はわかるのですが、自分でこの式を導き出す術がわかりません。
中学レベルの数列すら全く理解していないので、別サイトで数列の勉強からし直そうとしてみたのですが、
等差数列とかますます理解できなくなり絶望的になっています。
こんなことでは便利なマクロが作れるようにはなれそうにもない、と意気消沈。
やっぱり数列を理解できないと、先々発展できないでしょうか?

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

[7466] 転記先ファイルを生成してデータを流し込む。

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

お世話になっております。
転記先のファイル名について一つ教えてください。
変数にするまでは「sample.xls」と、.xlsが付いていますが、最終的にfnameの変数に置き換え、「n,t,b」などのファイル名の言葉が入ってくるようになると思います。
その際文末に「&".xls"」は着ける必要はないのでしょうか。
ActiveWorkbook.SaveAs Filename:="D:\ks201-205\ks204\ks204_mondai\" & fname _
ActiveWorkbook.SaveAs Filename:="D:\ks201-205\ks204\ks204_mondai\" & fname&".xls" _


Sub ks204_02()
Dim fname
Dim moto
Dim saki
Dim slist
For slist = 4 To 7
fname = Workbooks("ks204.xls").Worksheets("List").Range("C" & slist).Value
Workbooks.Open Filename:="D:\ks201-205\ks204\ks204_mondai\template.xls"
ActiveWorkbook.SaveAs Filename:="D:\ks201-205\ks204\ks204_mondai\" & fname _'ここです。
, FileFormat:=xlExcel8, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False

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

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

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

小川様

お世話になります。
フォローアップ追加分の最後に記入済みデータを手元資料に統合という課題の
最後に追加データもとってくるというのがありますが

小川さんの模範解答には

If Workbooks(filename).Worksheets("歳入").Range("A" & moto).Value <> "" Then



というコードがありますで、そのコードがなくともできるのではないかとおもい
以下のコードを作成しましたが、追記データがとびとびになってうまくいきませんでした。
原因を探ろうとしましたがお手上げです。
ご指導よろしくお願いいたします。


Sub hukusyuu() '

Dim foldername
Dim filename
Dim tuikanyu
Dim tuikasyu
tuikanyu = 52
tuikasyu = 42

Dim gyo
For gyo = 2 To 10

foldername = Workbooks("全部1つ.xls").Worksheets("部署情報").Range("F" & gyo).Value
filename = Workbooks("全部1つ.xls").Worksheets("部署情報").Range("G" & gyo).Value

Workbooks.Open filename:="D:\h引越し\s仕事関係\VBA\f基礎追加フォローアップ解凍ファイル\配布物 最後の課題用に改変\01-課題一式\" & foldername & "\" & filename

Dim moto
Dim saki
Dim mituketa


For moto = 2 To 51 '←ここと(moto)
mituketa = False
For saki = 2 To 51 '←ここ(saki)が逆ではだめ。つまりフラグはあくまでmotoを見に行ったとき、ない場合の処理なので
If Workbooks(filename).Worksheets("歳入").Range("A" & moto).Value = Workbooks("全部1つ.xls").Worksheets("歳入").Range("A" & saki).Value Then
Workbooks("全部1つ.xls").Worksheets("歳入").Range("E" & saki).Value = Workbooks(filename).Worksheets("歳入").Range("E" & moto).Value
mituketa = True
Exit For
End If
Next
If mituketa = False Then
Workbooks("全部1つ.xls").Worksheets("歳入").Range("A" & tuikanyu).Value = Workbooks(filename).Worksheets("歳入").Range("A" & moto).Value
Workbooks("全部1つ.xls").Worksheets("歳入").Range("B" & tuikanyu).Value = Workbooks(filename).Worksheets("歳入").Range("B" & moto).Value
Workbooks("全部1つ.xls").Worksheets("歳入").Range("C" & tuikanyu).Value = Workbooks(filename).Worksheets("歳入").Range("C" & moto).Value
Workbooks("全部1つ.xls").Worksheets("歳入").Range("D" & tuikanyu).Value = Workbooks(filename).Worksheets("歳入").Range("D" & moto).Value
Workbooks("全部1つ.xls").Worksheets("歳入").Range("E" & tuikanyu).Value = Workbooks(filename).Worksheets("歳入").Range("E" & moto).Value
tuikanyu = tuikanyu + 1
End If
Next


For moto = 2 To 41
mituketa = False
For saki = 2 To 41
If Workbooks(filename).Worksheets("歳出").Range("A" & moto).Value = Workbooks("全部1つ.xls").Worksheets("歳出").Range("A" & saki).Value Then
Workbooks("全部1つ.xls").Worksheets("歳出").Range("E" & saki).Value = Workbooks(filename).Worksheets("歳出").Range("E" & moto).Value
mituketa = True
Exit For
End If
Next
If mituketa = False Then
Workbooks("全部1つ.xls").Worksheets("歳出").Range("A" & tuikasyu).Value = Workbooks(filename).Worksheets("歳出").Range("A" & moto).Value
Workbooks("全部1つ.xls").Worksheets("歳出").Range("B" & tuikasyu).Value = Workbooks(filename).Worksheets("歳出").Range("B" & moto).Value
Workbooks("全部1つ.xls").Worksheets("歳出").Range("C" & tuikasyu).Value = Workbooks(filename).Worksheets("歳出").Range("C" & moto).Value
Workbooks("全部1つ.xls").Worksheets("歳出").Range("D" & tuikasyu).Value = Workbooks(filename).Worksheets("歳出").Range("D" & moto).Value
Workbooks("全部1つ.xls").Worksheets("歳出").Range("E" & tuikasyu).Value = Workbooks(filename).Worksheets("歳出").Range("E" & moto).Value
tuikasyu = tuikasyu + 1
End If
Next

Workbooks(filename).Close
Next

End Sub


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

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

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

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件  [ 動画を見る] 

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

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

お世話になっております。一つこの例題について伺いたいことがあります。
もし、キャンペーン応募が同じ人から複数件あったとして、左の表の同じセルに「、」を打って複数件足していくような場合を想定して下記のようなコードを書きました。
しかし、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関数がやっていることをマクロで書くと?

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

お世話になっています。一つ聞きたいことがあります。
下記のように、 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

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

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

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

お世話になっています。一つ聞きたいことがあります。
下記のように、 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

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

[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件  [ 動画を見る] 

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

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

残業時間が最大な人が複数いた時に該当者、全て抽出する方法は?

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

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

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

残業時間が最大な人が複数いた時に該当者、全て抽出する方法は?

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

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

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

お世話になります。
会社で納期を転記する仕事があり
「表を解析して1行のリストをつくる」を参考にして納期と枚数も転記するように作成しました。
あらかじめ事業者リストは作成してあり 納期一覧から納期と枚数を転記します。
動画を見ながら確認して先生のcreatelist2を参考にして・・と何とか思った通りに転記できましたが
データを入れたら中身を消す nouki = "" ・・ここがどうも理解できませんでした。
一つ前の事業者分を消す?・・とういことでしょうか・・
kiso18のcreatelist3に作成させて頂きました。
少し補足を頂けると助かります。

Sub createlist3() '事業名リストが作成済の場合
Dim hida '事業者リスト I2:K11の範囲
Dim migi '納期リスト B2:D27の範囲
Dim nouki '納期と枚数
For migi = 2 To 11
For hida = 2 To 27
If Range("A" & hida).Value = Range("i" & migi).Value Then
If migi > 2 Then
Range("k" & migi - 1).Value = Mid(nouki, 2)
End If
nouki = ""
migi = migi + 1
End If
nouki = nouki & "," & Range("C" & hida).Value & "-" & Range("d" & hida).Value & "枚"
Next
Range("k" & migi - 1).Value = Mid(nouki, 2)
Next
End Sub

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

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

関口昭博さんからの投稿です。

小川様

お世話になります。

動画を見たあと私が作ったプログラムですが
一点、模範解答と違うところがあります。
コメントしてるか所ですが、模範解答はato = Len(moji) + 1
となっていますが、私のはa=nです。

これでも動いたので、問題ないのか。それともこれではあとあと
うまくないのか、コメントいただけると幸いです。

ちなにみこのプログラムは同じシート(sheet1)に転記するようにしています。

Sub hukusyuu()
Dim mae
Dim ato
Dim n
Dim moji
Dim migi
migi = 11

Dim gyo
For gyo = 2 To 7
moji = Range("D" & gyo).Value
mae = 0
ato = 0
For n = 1 To Len(moji)
If Mid(moji, n, 1) = "、" Then
mae = ato
ato = n
Range("A" & migi) = migi - 10
Range("B" & migi) = Range("A" & gyo).Value
Range("C" & migi) = Range("B" & gyo).Value
Range("D" & migi) = Range("C" & gyo).Value
Range("F" & migi) = Range("E" & gyo).Value
Range("E" & migi).Value = Mid(moji, mae + 1, ato - mae - 1)
migi = migi + 1

End If

Next
mae = ato
ato = n '←その根拠がここと思っていたら→また新発見!for next構文を抜けた後nに格納された変数が+1された。
Range("A" & migi) = migi - 10
Range("B" & migi) = Range("A" & gyo).Value
Range("C" & migi) = Range("B" & gyo).Value
Range("D" & migi) = Range("C" & gyo).Value
Range("F" & migi) = Range("E" & gyo).Value
Range("E" & migi).Value = Mid(moji, mae + 1, ato - mae - 1)
migi = migi + 1
Next

End Sub


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

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

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

動画その18の音声が小さくて聞き取れなのですが、大きくならないのでしょうか?

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

[6682] 転記先シートを生成してデータを流し込む。

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

小川先生、こんにちは
VBAの勉強とても楽しくなってきました。 でも理解するのがむずかしいところ たくさんありますが。
今回は 変数を入れる場所を考えるヒントを教えてほしいです。
10:12のところで、シートt, p, bを作成する際、Dim moto Dim saki ともに
変数を宣言する場所を変えた理由をお聞きしたいのです。その確認をして、これから違うものを作成する際に ヒントにしたいと思いますので。
宜しくお願いいたします。 

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

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

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

小川先生 質問させて下さい。

同じひな型で約50社分のクライアントの財務分析用エクセルシートを作成しています。
そのひな型のごく一部を変更する必要が出てきました。

すでに会社ごとの財務データを入力してあるので、変更する部分だけを、for next構文を使って書換えようと
しています。

すべてのシートを.xlsmで作っているのですが、マクロを作成して実行してみると、一つのファイルを書き換えて、
保存する際に、毎回『プライバシーに関する注意』というダイアログが出てきて、ダイアログのボタンをマウスでクリック
しないと次に進めないため、ファイル数だけ手作業が発生してしまっています。

この問題の、解決方法はないでしょうか。いちいちクリック動作をしないで、マクロで一気に実行できるようにしたいです。

ちなみに、エクセルのバージョンは2007です。

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

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

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

小川先生

質問させてください。

ファイルが大量にあってファイル名を別途エクセルに記述するのが大変な場合
フォルダにあるすべてのファイルに同じ処理をするというプログラムを書きたいのですが
どのように記述すればいいでしょうか。
For Each??など色々考えてみましたがうまく作成できませんでした。

<作成したいプログラム>
同じフォルダにある複数のファイルを順次開き、ソートをかけて指定した条件に一致するデータだけを
別のファイルに順次コピーをして別の1つのファイルを作成する。

こちらの動画が関連しているかと思って投稿しましたが、
もし他の何かヒントになるような動画があるとのことでしたら
教えていただければと思います。

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

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

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

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

基礎編フォローアップの16課まで何とかついてきましたが、このあたりで頭がフリーズしてしまいました。ほかの受講生さんの投稿を読むとあまりに高度なレベルなので 恥ずかしいです。初歩的な質問があるので 教えてください。


Sub nanntoka furi()
Dim gyousha
Dim furi
Dim gyo
For gyo=2 to 11
gyosha=gyosha & "," & Range("A" & gyo). Value
,,,,,,,,
,,,,,,,,,,
End Sub


のなかで、 なぜ  gyosha=の次にgyosha & 、、、、 と続くのかわからいのです。gyoshaの変数の定義が上方に書いてあるわけでないし、=の右側に書かれたgyoshaをどう解釈したらよいのでしょうか? 幼稚な質問ですみません。教えてください。

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

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

塩野 勝大さんからの投稿です。

初めて質問します。基礎編フォローアップの33講義目の1分30秒あたりのところで、自動記録したところにfoldernameとfilenameを貼り付ける作業までしたところで実行すると
実行時エラー1004となり、ファイルにアクセルできませんでしたと表示されます。何度か試したのですがわかりません。どのようにしたらいいのでしょうか。

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

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

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

小川先生へ。

はじめて質問致します。
基礎編、発展編1を受講中です。さて、本編のようなケースでは、配布前に、元データと配布するデータとの間に、モレがないかのを検証する必要があると思います。
どのように検証する方法が効率がよいのでしょうか。ご教授いただけますでしょうか。
何卒よろしくお願い致します。

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

[6425] 条件に一致するデータだけのリストを、条件に一致しないデータを削除する方法で作成する。

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

業務で実際に行を削除してほしいデータを残していったことがあったのですが、step-1のやり方しか考え付かず、for gyo = 10 to 35で、加工する箇所で、45-gyoという発想はまったくなかったので目からウロコでした!こちらのフォローアップ講座ではいろんなやり方を学べてとても勉強になります。

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

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

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

小川様

お世話になります。
誤ってマクロを動かしてしまって、それをもとに戻すシーンがありますが、ショートカットを使って素早く元に戻しているのは、動画の右上にでてくるキー表示をみてわかりました。
しかし、あまりにも素早くて、マネしようと思っても、押すキーが間違っているのか、動画のようにうまくいきませんでした。
別の動画で解説しているとのことでしたが、見つけられませんでした。
お手数ですが、手順ならびに使っているショートカットキーを教えていただきますか。
わたしもよく間違ったマクロを実行して、失敗することが多いのですが、すぐに修復できれば、非常に助かります。
よろしくお願いいたします。

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

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

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

小川先生へ

フラグの概念、なるほど!と思いました。

動画を見て、真似て書いてみたのですが
転記先にキャンペーンタイプの一覧がそのまま転記されてしまいました。
原因はTrueの綴りを間違っていたためでした(;・∀・)

Trueの綴りが違ったらFalseとして扱われてしまうとわかって驚きでした。

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

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

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

小川先生 こんばんは
今月基礎講座始めました 今日は初めて質問させていただきます 宜しくお願いいたします
(3:06)くらいの時ですが それまでのSubは、

 Sub kubunnkatu()
Dim ku
Ku=Instr(Range("C2").Value, "区")
Range("F2"). value=Left(Range"C2", Value, Ku)..........



となっていたものを ここでDim jusho とjusho=
Range("C2"). valueを加えていくわけですが、

code] Sub kubunnkatu()
Dim jusho
     Dim ku
jusho=Range("C2"). value
     Ku=Instr(Range("C2").Value, "区")
Range("F2"). value=Left(Range"C2", Value, Ku)..........[/code] となるのでしょうか?
Dim jusho の位置がDim ku の上に入ることにより Ku-Instra(Range,,,,,の文と引き離されてしまっているように思います。
なにか書き方にルールがあるのでしょうか? こういう微妙なところがわかりません おしえてください

ペンネーム:ぺる

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

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

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

最初は4番目が「県」かどうかで判定していましたが、それでは「都道府県」が存在しない場合に対応できないことに気づきました。
前半に一瞬表示される「市区郡町村」にもSelect Caseを使う方法は、大変参考になりました。なのに、発展編1フォローで解説されていないのが不思議に思いました。

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

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

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

いつもお世話になっております。
動画の資料ファイルはこちらの画面からはダウンロードできないのでしょうか?

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

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

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

お世話になります。
先程の列のループの質問の続きです。
retuを変数にしてとりあえずL列M列 二つの条件を満たした合計がだせました。
2列くらいならいいですが 10列超えると下記では辛いです^^;
もっと簡素な構文もあるかと思いましたが
出来たところまでです。
値は思った通りの数が出ましたが 構文として どうなんでしょうか?
Sub syuukei3()
Dim goukei
Dim retu
Dim hida
Dim migi
For migi = 3 To 9
retu = "L"
goukei = 0
For hida = 3 To 13
If Range("E" & hida).Value = Range("K" & migi).Value And Range("H" & hida).Value = Range("L2").Value Then
goukei = goukei + Range("F" & hida).Value
End If
Range(retu & migi).Value = goukei
Next
Next

For MIGI = 3 To 9
retu = "M"
goukei = 0
For hida = 3 To 13
If Range("E" & hida).Value = Range("K" & migi).Value And Range("H" & hida).Value = Range("M2").Value Then
goukei = goukei + Range("F" & hida).Value
End If
Range(retu & migi).Value = goukei
Next
Next
End Sub

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


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

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

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

トップへ