[[20171013125609]] 『共有のexcelファイル VBA』(まさこ) ページの最後に飛ぶ

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

 

『共有のexcelファイル VBA』(まさこ)

共有のexcelファイル VBA 
共有設定後のエクセルファイルでエラー400がでてしまいます。
(共有解除すると正常にマクロは動きます)

原因は、共有設定では機能が制限される為と思いますが、セルの結合ができなくてエラーがでます。
☆単一のセルをコピーして、セルを3個結合した箇所に貼り付け☆する為に、
何か回避方法はありますでしょうか?
(セルの背景色と文字色も一緒にコピーしたいです)

以下がエラーのコードの箇所です。(一部を抜粋して掲載)

r = WorksheetFunction.Match(Me.Range("W2"), wk.Columns("A"), 0)

 If  VarType(wk.Range("A1").Offset(r - 1, 2).Value) = vbString  Then
     Me.Range("AC27").Value = wk.Range("A1").Offset(r - 1, 2).Value
     Me.Range("AC27").UnMerge    ←ここ
     wk.Range("A1").Offset(r - 1, 2).Copy Destination:=Me.Range("AC27")
     Me.Range("AC27", "AE27").Merge ←ここ
  End If

< 使用 Excel:Excel2010、使用 OS:Windows7 >


えーと、色々と調べて考えていましたが、わかりませんでした。
後だしにならないようにすべて、質問させて頂きます。

Aブック シート名:集計

    A-B----- W--------AC-AD-AE-   AI-AJ-AK       AO- AP-AQ   AU-AV-AW
1-
2-     日付 ←W2には日付
3-  
4-

27- ←AC27:AE27 , AI27:AK27 , AO27:AQ27 , AU27:AW27 これらはそれぞれ結合セル
28             ←AC27:AE28 , AI28:AK28 , AO28:AQ28 , AU28:AW28 これらはそれぞれ結合セル
29             ←AC27:AE29 , AI29:AK29 , AO29:AQ29 , AU29:AW29 これらはそれぞれ結合セル
30             ←AC27:AE30 , AI30:AK30 , AO30:AQ30 , AU30:AW30 これらはそれぞれ結合セル
31        *31行目は想定しない

AC:AE27の結合セルにはブックAのW2がブックBのすべてのシートを探してA列に合致した行のC列の単一のセルの文字色と背景色をコピーして貼り付け。

ただし、この時にブックBのA列に合致したセルが結合されていた場合、A1:A2の場合はC1をAC27:AE27へ、C2をAC28:AE28へ、貼り付けしたいです。
もし、A1:A4で結合されていた場合は、C1をAC27:AE28へ、C2をAC:AE28へ、C3ををAC29:AE29へ、C4をAC:AE30へ貼り付けしたいです。

同様に、W2がブックBのA列に合致した行のE列をAI27:AK27へ 文字色と背景色貼り付け・・・
    W2がブックBのA列に合致した行のG列をAO27:AQ27へ 文字色と背景色貼り付け・・・
    W2がブックBのA列に合致した行のI列をAU27:AW27へ 文字色と背景色貼り付け・・・

Bブック シート名:管理表1

    A--B--C--D--E-F-G-H-I-J-
1-  
2-
3-  
4-
5-
6-

*A列の日付セルは、結合されてたりと不規則です。例えば、A3とA4の二つが結合セル 、A5:7の3つが結合セル、A8:9の2つが結合セル、等。
(最大でも結合セルは1〜4つまでです)

A列は日付が数式で入っています。

☆実現したい動作☆
・Aブックの集計シートのAC27:AE30 , AI27:AK30 , AO27:AQ30 , AU27:AW30に文字と背景色を消す
・AブックからBブックを開く
・Aブックのシート集計のW2の日付 が Bブックのすべてのシートに対して、A列に合致するセルを探して(ない場合もある)、合致する行のC列、E列、G列、I列
の文字列と背景色をコピーして、それぞれAC27:AE27 , AI27:AK27 , AO27:AQ27 , AU27:AW27( これらはそれぞれ結合セル)へ貼り付け。

ただし、この時にブックBのA列に合致したセルが結合されていた場合、A1:A2の場合はC1をAC27:AE27へ、C2をAC28:AE28へ、貼り付けしたいです。
E1をAI27:AK27へ、E2をAI28:AK28へ。G1をAO27:AQ27 G2をAO28:AQ28へ。I1をAU27:AW27、I2をAU28:AW28を貼り付け。

もし、A1:A4で結合されていた場合は、C1をAC27:AE28へ、C2をAC:AE28へ、C3ををAC29:AE29へ、C4をAC:AE30へ貼り付けしたいです。
(ちなみに、BブックのC列、E列、G列、I列は単一のセルです)
・ブックを閉じて処理終わり

補足:ブックAにマクロを置いて実行したいです。
   ブックAだけは共有設定のファイルです。セルの結合・解除の機能の制限があります。
どうか、ご教授のほどよろしくおねがいします。

この結果が実現できればどのような方法でも構いません。
新しいブックCを使って、セルの結合してから、ブックAに貼り付けであったり、または、一度共有を切って、処理して、共有設定をする等。。。
色々考えていましたが。分からなかったです。よろしくお願いします。
(まさこ) 2017/10/15(日) 09:18


こんな感じではだめでしょうか
 >wk.Range("A1").Offset(r - 1, 2).Copy Destination:=Me.Range("AC27")
 
 Range("AC27").Value=wk.Range("A1").Offset(r - 1, 2).Value
 Range("AC27").Font.Color=wk.Range("A1").Offset(r - 1, 2).Font.Color
 Range("AC27").Interior.Color=wk.Range("A1").Offset(r - 1, 2).Interior.Color

(マナ) 2017/10/15(日) 09:46


マナ様
おぉー!!共有設定状態でも動きました
こんな事で出来るとは思いませんでした。
助かりました。ありがとうございました。
(まさこ) 2017/10/15(日) 14:31

コメント返信:

[ 一覧(最新更新順) ]


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