Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


11745 / 76734 ←次へ | 前へ→

【70521】Re:該当するセルにオートシェイプで丸印を付けたい
発言  kanabun  - 11/11/23(水) 17:23 -

引用なし
パスワード
   ▼どぢょりん さん:

>再度やってみましたら、今回は普通に処理ができました。
>ご迷惑をおかけしました。

あれ?
できちゃったんですか?
とすると、原因は何だったんでしょうねェ


>もしよろしければ、お時間のあるときでいいので、下記の部分の解説をお願いできませんか?
>お恥ずかしい限りですが、"C"や"F"が何を指しているのか、ぜんぜん分かりませんでした。
>

■Cells(行Index, 列Index)
のことですけど、ほんとうはこれ Cells.Item(行, 列) のことなんです。
「Cells」というのはすべてのセルの集合のことで、
「.Item(行, 列)」というのが、その集合の中の単一要素を指定するしかたで、
セルの集合だから、行位置と列位置の2次元座標でセル位置を指定しています。
このとき
  Cells.Item(1,3)
とすると [C1]セルのことですが、この 列番号3 の代わりに 列名"C" を使って、
  Cells.Item(1, "C")
とも表せますよ、ってことです。集合のなかの要素を指定するための Itemプロ
パティは 省略することができるので、
  Cells.Item(1,3) は Cells(1,3) と表すことが多いです(マクロ記録でも)
同様に
  Cells.Item(1, "C") は Cells(1, "C") と表すことが多いです。

〔参考〕
Worksheets(1) を Worksheets("Sheet1") と名前を使って表してもいいです。
これも同じことで、「Worksheets」というワークシートのコレクション(集合)
のなかの「第1番目の」シートと指定するときは番号を使い Worksheets(1)
とするけれど、「Sheet1」という名前の特定のシートというときは そのシート
の名前を使って Worksheets("Sheet1") と表すことができるのも、同じ理由
からです。
Worksheets(1) は ほんとは Worksheets.Item(1) という意味なんです。
Worksheets("Sheet1") は ほんとは Worksheets.Item("Sheet1") なんです。


>Do Until IsEmpty(WS2.Range("B1").Value)
>     .DrawingObjects.Delete

      Sheet3を 1行おきに調べていきます(2行づつ結合されているので)
>     For y = 1 To 20 Step 2
        もしy行目の C列に文字が書き込まれてなければ、処理終了です
>       If Len(.Cells(y, "C").Text) = 0 Then Exit For
>       
        Sheet2の"F"列にある「仕入先」文字列を取得します
        Sheet2の何行目を見ればいいかは、
         (y + 1) \ 2 すなわち、Sheet3の現在行+1した値を2で
         割った答えが Sheet2の行番号 という関係より計算します。
>       ss = WS2.Cells((y + 1) \ 2, "F").Value 'Sheet2仕入先文字列
        ss には、たとえば「C社・D社」というSheet2の文字列が代入されます。

        Sheet3の仕入れ先リスト範囲を変数r にセットします。
        y行目の"F"列から始まる2×2 の範囲です。
>       Set r = .Cells(y, "F").Resize(2, 2)
        この4つのセルを順に調べます
>       For Each c In r
>         s1 = c.Value
          s1 最初は「A社」次が「B社」その次のセルが「C社」です
          ↓ssのなかに s1があるか調べます。
>         If InStr(ss, s1) Then
          ↑ ss「C社・D社」のなかに s1「C社」は含まれていますので
            ↓このセルを○で囲みます
>           drawCircle c
            そして元のss文字列「C社・D社」から見つかった「C社」
            部分を抜き取ります → ss「・D社」 にします。
>           ss = Replace(ss, s1, "")
>           If Len(ss) = 0 Then Exit For
>         End If
>       Next
        4つの「仕入先候補」セルの巡回が終わって、ssにまだ文字列が
        残っていれば「その他」のセルに○を描きます。
>       If Len(ss) > 0 Then
         ただし「・」はすべて見つかっても残っていますので、
         ここで「・」も除いて、まだ見つからなかった仕入れ先が
         あったか、調べなくてはなりません。それを以下でやってます。
          Compare:=vbTextCompare) というオプションは 全角半角を
         問わずすべての「・」を削除という意味です。
>        If Len(Replace(ss, "・", "", Compare:=vbTextCompare)) > 0 Then
>          drawCircle r.Item(r.Count)
>        End If
>       End If
14 hits

【70097】該当するセルにオートシェイプで丸印を付けたい どぢょりん 11/10/15(土) 0:11 質問
【70098】Re:該当するセルにオートシェイプで丸印を... kanabun 11/10/15(土) 8:46 発言
【70104】Re:該当するセルにオートシェイプで丸印を... kanabun 11/10/15(土) 16:46 発言
【70105】Re:該当するセルにオートシェイプで丸印を... kanabun 11/10/15(土) 17:02 発言
【70109】Re:該当するセルにオートシェイプで丸印を... kanabun 11/10/15(土) 20:13 発言
【70110】Re:該当するセルにオートシェイプで丸印を... どぢょりん 11/10/15(土) 22:39 お礼
【70111】Re:該当するセルにオートシェイプで丸印を... kanabun 11/10/15(土) 22:51 発言
【70114】Re:該当するセルにオートシェイプで丸印を... どぢょりん 11/10/16(日) 7:32 質問
【70115】Re:該当するセルにオートシェイプで丸印を... kanabun 11/10/16(日) 7:40 発言
【70185】Re:該当するセルにオートシェイプで丸印を... どぢょりん 11/10/18(火) 22:20 お礼
【70474】Re:該当するセルにオートシェイプで丸印を... どぢょりん 11/11/19(土) 8:22 質問
【70476】Re:該当するセルにオートシェイプで丸印を... kanabun 11/11/19(土) 13:29 発言
【70483】Re:該当するセルにオートシェイプで丸印を... どぢょりん 11/11/19(土) 23:08 発言
【70484】Re:該当するセルにオートシェイプで丸印を... どぢょりん 11/11/19(土) 23:46 発言
【70485】Re:該当するセルにオートシェイプで丸印を... kanabun 11/11/20(日) 1:53 発言
【70486】Re:該当するセルにオートシェイプで丸印を... kanabun 11/11/20(日) 2:17 発言
【70487】Re:該当するセルにオートシェイプで丸印を... どぢょりん 11/11/20(日) 8:08 発言
【70488】Re:該当するセルにオートシェイプで丸印を... kanabun 11/11/20(日) 9:36 発言
【70491】Re:該当するセルにオートシェイプで丸印を... kanabun 11/11/20(日) 16:22 発言
【70506】Re:該当するセルにオートシェイプで丸印を... どぢょりん 11/11/22(火) 6:15 お礼
【70508】Re:該当するセルにオートシェイプで丸印を... kanabun 11/11/22(火) 11:20 発言
【70514】Re:該当するセルにオートシェイプで丸印を... どぢょりん 11/11/23(水) 8:27 お礼
【70521】Re:該当するセルにオートシェイプで丸印を... kanabun 11/11/23(水) 17:23 発言
【70524】Re:該当するセルにオートシェイプで丸印を... どぢょりん 11/11/24(木) 22:14 お礼

11745 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free