Excel VBA質問箱 IV

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

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


6381 / 13646 ツリー ←次へ | 前へ→

【45419】コピー時に判定する事はできるのでしょうか。 ラーメンズ 06/12/22(金) 23:07 質問[未読]
【45478】Re:コピー時に判定する事はできるのでしょ... ナイスプログラム 06/12/27(水) 0:01 回答[未読]
【45534】Re:コピー時に判定する事はできるのでしょ... ラーメンズ 06/12/29(金) 21:06 質問[未読]
【45536】Re:コピー時に判定する事はできるのでしょ... ナイスプログラム 06/12/29(金) 23:39 回答[未読]
【45537】Re:コピー時に判定する事はできるのでしょ... ラーメンズ 06/12/30(土) 12:29 お礼[未読]

【45419】コピー時に判定する事はできるのでしょう...
質問  ラーメンズ  - 06/12/22(金) 23:07 -

引用なし
パスワード
   ある特定のシート内の(ここではカラーシート)セルをコピー事した事を判定する事はできるのでしょうか?カラーシートという、1セルごとに違う色やパターンを設定したシートを作ったのですが、これの1セルをコピーした際に「この色は使用済み」という意味でコピー後セルの値として※を代入するようなマクロを作りたいのですが、マクロでそのような機能をつくる事は可能なのでしょうか?ご教授願えたら幸いです。

【45478】Re:コピー時に判定する事はできるのでし...
回答  ナイスプログラム  - 06/12/27(水) 0:01 -

引用なし
パスワード
   ▼ラーメンズ さん今晩は:

 コピーかどうかは別として、同じ色が2回使われているかどうかは、各セルのInterior.ColorIndexをチェックすれば分るのではないでしょうか。
    

【45534】Re:コピー時に判定する事はできるのでし...
質問  ラーメンズ  - 06/12/29(金) 21:06 -

引用なし
パスワード
   ナイスプログラムさんありがとうございます。

Interior.ColorIndexについて調べてみたのですが、
ifでsheet1のA1とsheet2のA1を比較して同じだったら、sheet2のA1に※を入力するようにプログラムを書き込んで実行しても、型が合わないのかエラーを起してしまいました。詳しくInterior.ColorIndex同士の比較を解説しているサイト等は存在するのでしょうか?また、Interior.PatternとInterior.PatternColorIndexなどもまとめて判定する事が可能なのでしょうか。


▼ナイスプログラム さん:
>▼ラーメンズ さん今晩は:
>
> コピーかどうかは別として、同じ色が2回使われているかどうかは、各セルのInterior.ColorIndexをチェックすれば分るのではないでしょうか。
>

【45536】Re:コピー時に判定する事はできるのでし...
回答  ナイスプログラム  - 06/12/29(金) 23:39 -

引用なし
パスワード
    今晩は。

 Interior.PatternとInterior.PatternColorIndexは、両方ともlong型です。
Interior.ColorIndexは、variant型のようです。全て値の取得も設定も可能だそうです。(ヘルプより。)

 使い方としては、たとえば,テストはしていませんが、

dim lp as long,lpc as long
dim vci as variant
 
with worksheets("sheet1").range("a1")
  lp=.Interior.Pattern
  lpc=.Interior.PatternColorIndex
  vci=.Interior.ColorIndex
end with

with worksheets("sheet2").range("a1")
   if .Interior.Pattern=lp then
   if .Interior.Pattern.ColorIndex=lpc then
   if .Interior.ColorIndex=vci then
     .value="※"
   end if
   end if
   end if
end with

 これでどうでしょうか。長いコードですが、これでうまく行けば、もっと整理出来るかも知れません。


 

【45537】Re:コピー時に判定する事はできるのでし...
お礼  ラーメンズ  - 06/12/30(土) 12:29 -

引用なし
パスワード
   ナイスプログラムさんありがとうございます。
おかげで、やろうとしていた事ができました。改良しつつ使っていこうと思います。


▼ナイスプログラム さん:
> 今晩は。
>
> Interior.PatternとInterior.PatternColorIndexは、両方ともlong型です。
>Interior.ColorIndexは、variant型のようです。全て値の取得も設定も可能だそうです。(ヘルプより。)
>
> 使い方としては、たとえば,テストはしていませんが、
>
>dim lp as long,lpc as long
>dim vci as variant
> 
>with worksheets("sheet1").range("a1")
>  lp=.Interior.Pattern
>  lpc=.Interior.PatternColorIndex
>  vci=.Interior.ColorIndex
>end with
>
>with worksheets("sheet2").range("a1")
>   if .Interior.Pattern=lp then
>   if .Interior.Pattern.ColorIndex=lpc then
>   if .Interior.ColorIndex=vci then
>     .value="※"
>   end if
>   end if
>   end if
>end with
>
>  これでどうでしょうか。長いコードですが、これでうまく行けば、もっと整理出来るかも知れません。
>
>
>

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