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

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

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

2015-02-17 07:40:17 佐藤 あゆむさんからの投稿です。

9回目から復習をしてきて18回目まで戻ってきました。
それでも書くのに悩んだ12回と18回は、また復習しますヽ(*´v`*)ノ
次は「Web連携」をやりつつ毎日一つはマクロを書いていきます^^/
「Web連携」が終わった後は、マクロの苦手な部分も克服できていることに期待。
それから発展編1に移ろうと思います^^

今回書いたコード↓

Sub create_ward()
    'review: 2015/2/16
    Dim i, mke, ward
    mke = 2
    For i = 2 To 27
        If Range("A" & i - 1).Value <> Range("A" & i).Value Then
            Range("E" & mke).Value = Range("A" & i).Value
            Range("F" & mke).Value = Range("B" & i).Value
            ward = Range("C" & i).Value & "地区,"
            mke = mke + 1
        Else
            ward = ward & Range("C" & i).Value & "地区,"
        End If
        Range("G" & mke - 1).Value = Left(ward, Len(ward) - 1)
    Next
End Sub

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

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

2015-02-16 21:09:55 watanbe daichiさんからの投稿です。

いつもありがとうございます。
組み合わせと発想で、簡単にできますね。この動画で、ハナコのステップの復習にもなりました。
何回も聞いていますと、現在の仕事の中でも「箱を作る…中に入れる…加工する…」が頭の中で繰り返されています。
1000件くらいのデータの割り付けも簡単に出来たので、とてもうれしいです。

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

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

2015-02-11 23:59:37 受講生さんからの投稿です。

17回の動画を観た後に、自分でNo.18の[2]をやってみました。

Sub list2()
Dim gyo
Dim migi
Dim kuiki

    migi = 2
    
    For gyo = 2 To 27
    
        If Range("A" & gyo - 1).Value <> Range("A" & gyo).Value Then
            Range("E" & migi).Value = Range("A" & gyo).Value
            Range("F" & migi).Value = Range("B" & gyo).Value
            migi = migi + 1
        End If
        
            If Range("B" & gyo - 1).Value <> Range("B" & gyo).Value Then
                kuiki = Range("C" & gyo).Value & "地区"
            Else
                kuiki = kuiki & "," & Range("C" & gyo).Value & "地区"
            End If
            
            Range("G" & migi - 1).Value = kuiki   'G列が1行ずれてしまったので、migi -1で調整した。
            
        Next
        
End Sub

急遽、migi-1なんてやらかしていますが…(^_^;)
それでも、何とか一通りフォローアップ動画も観終わりました。
もう一度、最後の方の難しかったところを観てから、次の「発展編1」に進もうと思います。
ありがとうございます。

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

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

2015-02-11 23:39:41 受講生さんからの投稿です。

最初は、どうしても「,(コンマ)」が残ってしまうと思ったので、自力だけでは解答に到達しませんでした(^_^;)

ここで、MId関数を使うことは思い付きませんでした。
Range(“F2”).Value = Mid(gyosya, 2)
Range(“F3”).Value = Mid(kana, 2)

「マクロを学ぶと言うことは、『視野を広げて考えること』でもあるのだな」
と実感しました。
毎回、勉強になります。
ありがとうございます(^o^)

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

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

2015-02-11 23:31:56 受講生さんからの投稿です。

最初に、自分で考えたものが以下の通りです。

Sub bangou()
Dim gyo
Dim Asiryo
Dim Bsiryo
Dim Csiryo
    
    Asiryo = 0
    Bsiryo = 0
    Csiryo = 0
    
    For gyo = 4 To 19
        If Range("D" & gyo).Value = "資料A" Then
            Range("B" & gyo).Value = 1
            Asiryo = Asiryo + 1
            Range("C" & gyo).Value = Asiryo
        ElseIf Range("D" & gyo).Value = "資料B" Then
            Range("B" & gyo).Value = 2
            Bsiryo = Bsiryo + 1
            Range("C" & gyo).Value = Bsiryo
        Else
            Range("D" & gyo).Value = "資料C" Then
            Range("B" & gyo).Value = 3
            Csiryo = Csiryo + 1
            Range("C" & gyo).Value = Csiryo
        End If

    Next
            
End Sub


IF文の条件を「<>」にすることは、思い付きませんでした。
 If Range("D" & gyo - 1).Value <> Range("D" & gyo).Value Then

「If○○ = ×× Then」だけでなく、「<>(等しくなかったら)」という使い方もできるのだなと、解説を観て思いました。
「等しければ」の反対は「等しくなければ」だから、「=」の条件でIF文を作るのが難しい、あるいはややこしくなるようなら、
「<>」の条件を考えて、作ってみるという方法があるのだなと思いました。

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

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

2015-02-11 19:31:40 佐藤 あゆむさんからの投稿です。

今フォローアップ動画9回目から復習をしています。

Cellsを思い出したので、RangeとCellsのいいとこどりで書いてみましたヾ(*´∀`*)ノ。
(個人的にはRangeの方がセル特定しやすくて好きです)
「1月の最長労働者とその他の月の労働者との勝ち抜き」という発想で書きました。

Sub overwork_total_1()
    'review [3]: 2015/2/11
    Dim l, c, lng
    lng = 6
    For l = 6 To 33
        If Range("C" & lng) < Range("C" & l) Then
            lng = l
        End If
    Next
    Range("K4").Value = Range("B" & lng).Value
    Range("L4").Value = Range("C5").Value
    Range("M4").Value = Range("C" & lng).Value
    l = 0
    For c = 4 To 8
        For l = 6 To 33
            If Range("M4").Value < Cells(l, c).Value Then
                Range("K4").Value = Range("B" & l).Value
                Range("L4").Value = Cells(5, c).Value
                Range("M4").Value = Cells(l, c).Value
            End If
        Next
    Next
End Sub

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

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

2015-02-09 08:00:07 佐藤 あゆむさんからの投稿です。

今回は2日間粘って[2]を完成させました。

今から仕事なので帰宅したら小川先生のマクロを検証しつつなぞろうと思います。

Sub createlist2()
    Dim i, j, ward
    Range("E2").Value = Range("A2").Value
    Range("F2").Value = Range("B2").Value
    
    j = 3
    For i = 3 To 26
        If Range("A" & i - 1).Value <> Range("A" & i).Value Then
            Range("E" & j).Value = Range("A" & i).Value
            Range("F" & j).Value = Range("B" & i).Value
            j = j + 1
        End If
    Next
    
'作成日: 2015/02/09。↓2日考えてやっと完成
    j = 2
    Range("G2").Value = Range("C2").Value & "地区"
    For i = 2 To 26
        If Range("A" & i) <> Range("A" & i + 1) Then
            ward = 0
            j = j + 1
            ward = Range("C" & i + 1).Value & "地区,"
            Range("G" & j).Value = ward
        Else
            ward = ward & Range("C" & i + 1) & "地区,"
            Range("G" & j).Value = ward
        End If
    Next
    For i = 3 To 11
        Range("G" & i).Value = Left(Range("G" & i).Value, Len(Range("G" & i).Value) - 1)
    Next
    
End Sub

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

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

2015-02-09 07:34:40 受講生さんからの投稿です。

今回は、自力で解けませんでした。
解説動画を何度か繰り返し観たり、正解のコードを眺めながら、構造を理解していきたいです。

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

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

2015-02-08 17:42:19 佐藤 あゆむさんからの投稿です。

今回は悩みました^^; でも自分でできたので嬉しいですヽ(*´v`*)ノ
最後にコンマがくるのはどうしたものかな… と考えてそれを解決したのが以下のコードです。

code
Sub complist1()
Dim i, all, all2
all = Range(“A” & 2).Value
all2 = Range(“B” & 2).Value

For i = 3 To 11
all = all & “,” & Range(“A” & i).Value
all2 = all2 & “,” & Range(“B” & i).Value
Next
Range(“F2”).Value = all
Range(“F3”).Value = all2
End Sub
/code

mid関数は思いつきませんでした。

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

[3772]出現回数を数える。CountIf関数がやっていることをマクロで書くと?

2015-02-08 11:13:15 受講生さんからの投稿です。

こんにちは。
最初に自力でやった時は、For~Next構文を1回しか使わずにやりました。

Sub count2()
Dim siso
Dim drink
Dim kanpyo
Dim gyo

    For gyo = 4 To 33
        If Range("C" & gyo).Value = Range("E4").Value Then
            siso = siso + 1
            
        ElseIf Range("C" & gyo).Value = "Range("E5").Value Then
            drink = drink + 1
            
        ElseIf Range("C" & gyo).Value = Range("E6").Value Then
            kanpyo = kanpyo + 1
            
        End If

        Range("F4").Value = siso
        Range("F5").Value = drink
        Range("F6").Value = kanpyo
    Next
   
End Sub


最初に解説動画を拝見した時は、
「For~Next構文の中に、さらにFor~Next構文が入ると言うことだろか?」
と考えました。
そこで、migiとgyoの値に注目しながら、紙に書いてみて確認しました。
最初は、migi=4、gyo=4からスタートし、gyoの1回目のループが終わった地点では、migi= 4、gyo= 33で、
次にRange(“F” & migi).Value = goukeiをした後、migi=5となり、migiの1回目のループが終わり、
2回目のループは、migi=5、gyo=4から始まるのだと確認しました。
何だか、すごく手間のかかることをしていますね(^_^;)

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

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

2015-02-05 07:41:53 受講生さんからの投稿です。

こんにちは。
最初に自分だけでやってみた時は、数列を使わずに解きました。

End Sub
Sub list()
Dim title
Dim gyo
title = 1

    For gyo = 1 To 10
        Range("C" & gyo).Value = Range("A" & title).Value & Range("A" & title + 1).Value
        title = title + 3
    Next

End Sub


やはり、文系的な発想ですね…。
数列を使った方が、同じ動きをするプログラムでも、行数が少なく、スッキリしたものができますね。
勉強になりました。
ありがとうございます。

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

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

2015-02-04 22:46:46 佐藤 あゆむさんからの投稿です。

これまで何とか自分で解けていますが、動画の解答と比べると原始的な発想なので勉強になります。
18回目まで行ったら、第9回からもう一度復習します^^

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

[3721]出現回数を数える。CountIf関数がやっていることをマクロで書くと?

2015-02-01 19:02:42 watanbe daichiさんからの投稿です。

いつもありがとうございます。
3回くらい書いてみるとなんとなく、形が見えてきました。
変数は、使用する数と場所を要注意だと解りました。
このバランスで、いろんな事もシンプルに考えることができました。

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

[3720]出現回数を数える。CountIf関数がやっていることをマクロで書くと?

2015-02-01 09:35:54 佐藤 あゆむさんからの投稿です。

前回の動画の知識も使いつつ、簡素にIfThenElseを使って自分で書いてから動画を見るとやはり学ぶところがありました.゚+.(o´∀`o)゚+.゚

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

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

2015-01-31 11:45:59 佐藤 あゆむさんからの投稿です。

これまで練習問題は自力で書けていましたが、内心「If Then Else End Ifってもっと簡素に書けないかな」と思っていたので、
今回の動画はとても参考になりました☆└(゚∀゚└))((┘゚∀゚)┘

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

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

2015-01-24 15:03:50 watanbe daichiさんからの投稿です。

そうか、数列とか高校生でやった内容も応用できますね!!
本ばっかり読んでやっていた時は、その内容が唯一の答えのように感じてしまいますね。
何事も自分で試していくことが大事ですね。

”いくつかサンプルを試してみる”が団子の中味を決める大切なステップだと感じました☆
ありがとうございました。

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

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

2015-01-24 10:23:32 井上 聡さんからの投稿です。

質問 以下のコードの場合は、(A)が2だと最初に” . “ピリオドがつきます。3だと消えます。なぜでしょうか。
Sub risuto()
Dim hidari
Dim migi
Dim tantou
migi = 1
For hidari = 2 To 27
If Range(“A” & hidari – 1).Value <> Range(“A” & hidari).Value Then
migi = migi + 1
tantou = ” “
End If
Range(“E” & migi).Value = Range(“A” & hidari).Value
Range(“F” & migi).Value = Range(“B” & hidari).Value
tantou = tantou & “.” & Range(“C” & hidari).Value & “担当”
Range(“G” & migi).Value = Mid(tantou, 2)(A)
Next
End Sub

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

[3679]複数条件を組み合わせた条件分岐

2015-01-24 06:47:45 佐藤 あゆむさんからの投稿です。

おはようございます、あゆむです。

自分で完成させてからはじめて動画を見ると、はなこを意識していても自分の動きに無駄があることに気づきます。
今回初めて、動画通りに手順書を作成し自分でもう一度その通りに書いてみました。

うまくいったのでこれからはまず自分で手順書を書いてからマクロを書き始めるようにします♪
結果から逆順にたどればいいんですよね(v´∀`) こうして見ると完全に美しい入れ子構造になってますね(人*´∀`)

手順書はこのような感じになりました↓

「[2] 男性の場合は80点以上、女性の場合は70点以上を合格」
01 [団子]. 「合格」と記入するお団子を作る。range.value
02 [は]. If文で合格条件を記述する箱を作るIf then else end if
03 [な]. 【01 [団子].】を【03 [は].】の中に入れる
04 [こ].加工する (⇒新しい団子Aとなる)

05 [は]. If文で性別条件を記述する箱を作るIf then else end if
06 [な].【04 [こ]. (新しい団子A)】を【05 [は].】の中に入れる
07 [こ]. 加工する (⇒新しい団子Bとなる)

08 [は]. 繰り返し用の箱を作る。For Next
09 [な]. 【07 [こ]. 新しい団子B】を【08 [は].】の中に入れる
10 [こ]. 加工する (⇒団子完成)

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

[3674]If文とForNext構文を組み合わせる

2015-01-23 20:08:16 佐藤 あゆむさんからの投稿です。

小川先生、こんばんは。
キーボードの音がよく入っていたおかげで、小川先生のタイピングスピードがどれだけ速いかが実感できましたヾ(*≧∀≦*)ノ

私もタイピングスピードが上がるように練習していきますo(`・д・´)o

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

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

2015-01-13 20:37:01 watanbe daichiさんからの投稿です。

初めてリストの作り方を見させていただきました。こうやって作るんですね…。
左から右へのリストアップは、業務でも多いので、とてもありがたいです。これを応用していくと別シートからも参照できますか?Worksheets(“Sheet1”)みたいに使う事もできそうだと思いました。
migi=5、migi=migi+1のコードも、言われるだけでは良く分からなかったのですが、実際に動作に合わせて作ってみることで確認させていただきました。
ありがとうございます。

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

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

2015-01-13 12:15:16 山本 茂生さんからの投稿です。

小川先生

 以下のように、変数を設定して、コードを作りましたが、
全体的な概念として、変数の数は、抑える方にした方が良いでしょうか。
 ご教示よろしくお願いします。

Sub guru()

    Dim shozoku
    Dim guru_no
    Dim gyo
    
    For gyo = 2 To 11
        shozoku = Range("B" & gyo)
        guru_no = InStr(shozoku, "都島")
        If guru_no > 0 Then
            Range("J" & gyo) = "都島グループです"
        End If
    Next
        
End Sub


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

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

2015-01-13 09:54:49 山本 茂生さんからの投稿です。

小川先生

 1問目は、最初、下のように、作りました。
 動画で、先に、①行Noを特定 して、後で、②該当のセル(J列)
に、ピンポイントで入れる、
という、お団子2個 作ることが、勉強になりました。

[Sub takai()]
[]
[ Dim dekai]
[ dekai = 0]
[  Dim gyo]
[   For gyo = 2 To 11]
[   If dekai < Range(“G” & gyo) Then]
[ dekai = Range(“G” & gyo).Value]
[    Range(“J” & gyo) = “最高点です”]
[    Range(“j2:H” & gyo – 1) = “”]
[ ]
[    End If]
[ ]
[ Next]
[ ]
[/End Sub]

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

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

2015-01-11 18:59:36 井上 聡さんからの投稿です。

Sub siharairisuto()
Dim migi
Dim goukei
Dim hidari
Dim konrui
Dim sourui
For hidari = 4 To 9
goukei = 0
For migi = 4 To 10
If Range(“I” & migi).Value = Range(“B” & hidari).Value Then
goukei = goukei + Range(“J” & migi).Value
‘End If ‘これが正解(A)
‘Next ‘これが正解(B)
Range(“D” & hidari).Value = goukei
Range(“E” & hidari).Value = Range(“C” & hidari).Value + goukei
End If ‘条件が合致していると、End Ifは関係なくfor Next内を進む。(C)
‘条件が合致していないとEnd If外に進む。
konrui = konrui + goukei
sourui = sourui + Range(“E” & hidari).Value
Next(D)
Next
Range(“D10”).Value = konrui
Range(“E10”).Value = sourui
End Sub
すいません、コピーを張り付けることができるなら今後そうします。質問の意味が自分でも不明です。
End ifが(C)の位置だとてっきりIfにもどるものと思って言いました。
If then end ifは条件が一致すると常にそのまま進むものであるのでしょうか。
If thenだけでend if を使用しない構文(多分?)の場合とはどのように使い分けるのでしょうか。

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

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

2014-12-14 01:36:59 唐沢俊孝さんからの投稿です。

小川先生

フォローアップkiso6の問題の動画を見る前に フォローアップkiso4の内容を利用して マクロを以下書いてみました。
結果は同じでしたが、
Range(“列名” & 変数×3−2).Value のfor next構文の方がシンプルで
書く時間も半分で済みますね!
勉強になりました。

Sub kiso6no1()
Dim ketugou
Dim gyo
gyo = 1
For ketugou = 1 To 28
If Range(“A” & ketugou).Value <> “” And Range(“A” & ketugou + 1).Value <> “” Then
Range(“C” & gyo).Value = Range(“A” & ketugou).Value & Range(“A” & ketugou + 1).Value
gyo = gyo + 1
Else
End If
Next

End Sub

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

[3383]出現回数を数える。CountIf関数がやっていることをマクロで書くと?

2014-12-03 15:58:20 井上 聡さんからの投稿です。

Sub hindo() ‘全く駄目です。単純に変数を3つ作成し、3回ループしてみました。
Dim siso
Dim count
Dim gyou
Dim kanpyou
Dim nomimono
For gyou = 4 To 33
siso = Range(“C” & gyou).Value
If siso = “しそ巻き無料” Then
count = count + 1
End If
Range(“F4”).Value = count
Next
Dim count1
For gyou = 4 To 33
siso = Range(“C” & gyou).Value
If kanpyou = “かんぴょう巻き無料” Then
count1 = count1 + 1
End If
Range(“F5”).Value = count1
Next
Dim count2
For gyou = 4 To 33
siso = Range(“C” & gyou).Value
If nomimono = “飲み物無料” Then
count2 = count2 + 1
End If
Range(“F6”).Value = count2
Next

End Sub
なぜ変数は、最初のFor~Nextの中でしかカウントされないのでしょうか。
カウントされない理由はなぜですか。?

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

[3357]If文とForNext構文を組み合わせる

2014-11-30 13:59:14 唐沢俊孝さんからの投稿です。

小川先生

もう一つ質問です。
動画のmondai1の回答 03のマクロ(以下)ですが、
dim gyo の後にAs Long と書かれています。
これは何か教えてください。

Sub kaitou03()
Dim gyo As Long
For gyo = 2 To 11
If Range(“C” & gyo).Value > 100 Then
Range(“A” & gyo).Value = “○”
Else
Range(“A” & gyo).Value = “×”
End If
Next
End Sub

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

[3356]If文とForNext構文を組み合わせる

2014-11-30 03:16:55 唐沢俊孝さんからの投稿です。

小川先生

別の質問です。
IF文で日付をの曜日が日曜日ならセルの色を赤にする といったマクロを以下書いたつもりでしたが、
小人ちゃんが動きませんでした。
エクセルにはあらかじめA3に201/11/30(日)と表記しています。
この表記は セルの書式→ユーザー定義 で yyyy/mm/dd(aaa) と設定し、A3には11/30 と打ち込みました。
やはり書式の(aaa)は曜日の文字として認識されないのでしょうか。

Sub dinichiro()

  If InStr(Range(“A3”).Value, “日”) > 0 Then
Range(“A3:F3”).Interior.Color = vbRed

End If
End Sub

仕事がらスケジュールを作成することが多く、土日祝はセル色を変えています。
現在は力技(ネット上で紹介されている条件付き書式で実施。祝日は、名前の定義で祝日のみを打ち込んだ日付を範囲選択し、これを条件付き書式で利用)ですが、
関数が複雑に入っているとファイルが重く、開くのに時間がかかったり、開かず強制終了が起こったりで困っています。
ちなみに現在のエクセルにはB列(B3~B100あたり)にMID(“月火水木金土日”,WEEKDAY(A3,2),1)の数式を入れて曜日を表記し、これを先ほどの条件付き書式で色つけしています。マクロも似たようなやり方になるのでしょうか(こちらもデータの型でしょうか)。

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

[3335]If文とForNext構文を組み合わせる

2014-11-25 01:28:10 唐沢俊孝さんからの投稿です。

小川先生

先生が動画でおっしゃっていたハナコのステップが呪文のように頭に出てきて(この動画の刷り込みは本当に感謝です!)、
私も口「箱(for next文,if文)をつくる。home shift ↓↓↓、tabでずらして切り取って、貼り付ける。あとは加工して終わり!」と言いながら
全くその通りにマクロが書けました。このおかげで、迷いなく、手が止まって考えることなくスラスラと!さらに小人ちゃんが動いてくれるので、
何度書いてもやみつきになりそうです!

Enshu00100_Basic.xls のmondai1でわからないことありましたので、ご指導お願いいたします。

質問1:
C8とC10をテンキーのマイナスで打ち込み「-」と表記しますと、以下のマクロではA8とA10に「○」と記入されます。 
このマクロは数値に対しての条件であるから、数値を除く文字が入ると誤作動を起こすと考えてよろしいでしょうか。

以下は動画でも開設された回答です。
Sub mondai1()
Dim ten
For ten = 2 To 11
If Range(“C” & ten).Value > 100 Then
Range(“A” & ten).Value = “○”
Else
Range(“A” & ten).Value = “×”
End If
Next
End Sub

Enshu00100_Basic.xlsのC列の書式設定は「通貨」で、C8とC10は「‐」表示されており、セルの書式設定で確認するとだと0と打ち込まれていました。
マクロは100以下の数値と認識し、正確に×と記入されました。

私は自分の練習用エクセルファイルにこの設問と似た感じのレイアウトをつくり、設問の表記を真似たつもりでしたが、C8とC10はテンキーのマイナスを打ち込み「-」と表記しました。
このときのセルの書式設定は標準でした、この条件で上記のマクロで実行しましたところマクロは100より大きいと認識し、A8とA10に○と記入されました。
C8とC10を空欄にしますとA8とA10ともに×と記入されました。セルの書式を「通貨」に変えて同様に確認しましたところ同様のことが起こりました。
ちなみに数値でない文字を入れると、すべてこのようになることを確認しました。

質問2:
エクセル知識がない私のような人間は元データに「0」をテンキー「-」と記入してしまうケースはあると思います。
(書式設定で¥を表記しているのに、打ち込み担当が一時変わって¥を書く人がいるかもしれない。)
そのミスをも防ぐマクロをif文に(C1~C11のセルの値が数値なら上記のif文を実行する、そうでなければ(文字列なら)C1~C11のセルの値に”入力ミス”と記入する)
といったマクロをかければと思いましたが、書けませんでした。こういったものは発展でのお話になりますでしょうか。これまでの基礎編が理解できていれば
対応できそうなマクロであればご教授お願いいたします。
(Len関数を組合せてうまくできないか考えましたが、数値もカウントしてしまいますので私では対応できませんでした)



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

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

2014-10-13 20:09:19 野村昭雄さんからの投稿です。

別のシートから情報を取ってくるのは、良く仕事でもあるので、今回の問題も良かったです。

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

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

2014-10-13 19:37:37 野村昭雄さんからの投稿です。

2つの表を操作する処理として、for next文を2つ記入するのかと思いましたが、入力側をfor next文で、出力側はカウンターに+1していくこと。とても良い問題だと思います。

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


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

 

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

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

トップへ