[[20180602092952]] 『「「データを蓄積したい。」[初心者] について」』(トランプ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『「「データを蓄積したい。」[初心者] について」[トランプ] について』(トランプ)

投稿
[[20170325225457]] 『「データを蓄積したい。」[初心者] について』(トランプ) 
について...

以前ご質問させていただいたことについて、以下のようなことは可能でしょうか。

登録、読込、クリアさせるすごいマクロなのですが、その際に、
そのセルに入力された数字だけでなく、色も登録させたり、読込させたり、クリアしたりできるようにできないかと考えています。
つまり、数字とセットでセルの色も蓄積できないでしょうか。

< 使用 Excel:Excel2016、使用 OS:Windows10 >


転記先セル.Interior.Color=転記元セル.Interior.Color

のような感じで、値を転記した次の行に、追加してはどうでしょうか。

(マナ) 2018/06/02(土) 09:55


ご回答ありがとうございます。
転記先と転記元といいますと?どのような意味でしょうか?
無知でごめんなさい。

(トランプ) 2018/06/02(土) 09:59


>登録、読込、クリアさせるすごいマクロなのですが、

例えば、登録のマクロでは、何が行われているのですか?

(マナ) 2018/06/02(土) 10:04


数値の記録です。日付にもとづいて。
(トランプ) 2018/06/02(土) 10:06

転記先セルとは、記録先のセルという意味です。

(マナ) 2018/06/02(土) 10:08


ここでいうデーターベースのシートということですね。
(トランプ) 2018/06/02(土) 10:11

違います。セルです。

(マナ) 2018/06/02(土) 10:14


データーベースシートのセルということでしょうか。
(トランプ) 2018/06/02(土) 10:15

そうです。
読込のマクロでは、当然シート名が違ってきますね。

(マナ) 2018/06/02(土) 10:19


はい。ここでいうDBシートになるかと思います。
(トランプ) 2018/06/02(土) 10:37

では、どこにコードを追加すればよいか考えてみてください。

(マナ) 2018/06/02(土) 10:43


転記のコード部分のみ表示
以下の→部分でしょうか

    'データの転記
    sh2.Unprotect "00001"
    For i = 2 To UBound(v, 1)
        sh2.Cells(row1, v(i, 3)).Value = sh1.Range(v(i, 2)).Value
→
    Next i
    sh2.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    ReProtect sh2, "00001"
(トランプ) 2018/06/02(土) 10:48

はい、そうです。
では、追加して確認しみてください。

(マナ) 2018/06/02(土) 10:52


すみません。
追加位置はわかるのですが、実際に追加するコードとなると・・・

(トランプ) 2018/06/02(土) 10:53


>転記先セル.Interior.Color=転記元セル.Interior.Color

最初にこう書きました。

(マナ) 2018/06/02(土) 10:56


ネットでの情報を参考にしました。

    'データの転記
    sh2.Unprotect "00001"
    For i = 2 To UBound(v, 1)
        sh2.Cells(row1, v(i, 3)).Value = sh1.Range(v(i, 2)).Value
→   .Interior.ColorIndex = 35 ' 背景色
    Next i
    sh2.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    ReProtect sh2, "00001"

(トランプ) 2018/06/02(土) 10:59


>転記先セル.Interior.Color=転記元セル.Interior.Color

これは、参考になりませんでしたか?

(マナ) 2018/06/02(土) 11:03


いいえ、マナさんのお示しいただいたものを元に手を加えなければいけないのかと思い・・・
すみません。

    'データの転記
    sh2.Unprotect "00001"
    For i = 2 To UBound(v, 1)
        sh2.Cells(row1, v(i, 3)).Value = sh1.Range(v(i, 2)).Value
→   転記先セル.Interior.Color=転記元セル.Interior.Color
    Next i
    sh2.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    ReProtect sh2, "00001"
(トランプ) 2018/06/02(土) 11:06

前にも言いましたが、まずは現在のコードを理解することが先では?
あまりに理解できていないような気がします。

>すごいマクロなのですが

なんて言葉は、コードを書いてくださったsyさんは期待していないと思いますよ。

以下を参考に考えてみてください。
わたしからは最後かもです。

sheet1のa1から、sheet2のb1に値と色を「記録」するコードです。

 Sub 値と色を記録()
    Sheets("Sheet2").Range("b1").Value = Sheets("Sheet1").Range("a1").Value
    Sheets("Sheet2").Range("b1").Interior.Color = Sheets("Sheet1").Range("a1").Interior.Color
 End Sub

(マナ) 2018/06/02(土) 11:18


マナさん、ありがとうございます。
マナさんの教えどおり、以下のようにしてみました。
登録と読込はうまくいきました。
あとは、→→→部分のクリアがうまくいきません。
エラー424が表示されてしまいます。
もう一歩だと思うのですが、アドバイスのほどお願いいたします。

    'データの転記
    sh2.Unprotect "00001"
    For i = 2 To UBound(v, 1)
        sh2.Cells(row1, v(i, 3)).Value = sh1.Range(v(i, 2)).Value
        sh2.Cells(row1, v(i, 3)).Interior.Color = sh1.Range(v(i, 2)).Interior.Color

    'データの転記
    For i = 2 To UBound(v, 1)
        If v(i, 4) <> OneWay Then
            sh1.Range(v(i, 2)).Value = sh2.Cells(row1, v(i, 3)).Value
            sh1.Range(v(i, 2)).Interior.Color = sh2.Cells(row1, v(i, 3)).Interior.Color
        End If
    Next i

    'データのクリア
    For i = 2 To UBound(v, 1)
        If v(i, 4) <> OneWay Then
            sh1.Range(v(i, 2)).MergeArea.ClearContents
→→→      sh1.Range(v(i, 2)).Interior.Color.MergeArea.ClearContents
        End If
    Next i
(トランプ) 2018/06/02(土) 11:39

https://www.tipsfound.com/vba/07007

(マナ) 2018/06/02(土) 12:11


マナさん、ありがとうございます。
参考のとおり、以下のように修正したところ、
うまくできました。
sh1.Range(v(i, 2)).Interior.ColorIndex = 0
(トランプ) 2018/06/02(土) 12:20

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.