|    | 
     ▼acec さん: 
 
こんにちは 
 
手打ちタイプのミスだということは了解しました。 
 
さて仕切り直して。 
 
マクロを実行するには、様々な方法があります。 
で、acecさんがやろうとしておられるのは、シートにフォームツールのボタンを配置して 
そこにマクロを登録して、クリックしたときに実行させたいということですよね。 
 
一方、Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 
 
といったものは、まず記述の場所が、通常のマクロを記述する「標準モジュール」ではなく、 
シートモジュールという特殊なところです。で、その動きも特殊で、マクロを実行するのではなく 
シート上で、指定した動きがあったときに、自動的に実行されます。 
BeforeDoubleClick は、シート上の任意のセルをダブルクリックした時に、自動的に動きます。 
で、アップされたコードでやっているのは、ダブルクリックされたセルの行のA列〜C列の値を 
見積シートのD1:F1に転記します。たとえばクリックされたセルが10行目なら、A10:C10の値を転記します。 
 
再度アップされたコードがシートモジュール書かれていれば、エラーなく、目的が実行されるはずです。 
もし、エラーになるということであれば、エラーで止まった時に黄色く光っているコードがどこなのか 
そのときにどんなメッセージが出たかを教えてください。 
 
で、もし、そうじゃなく、ボタンに登録して、クリックして動かしたいんだということであれば 
まず、コードは「標準モジュール」に書きます。ただし、その形が 
Sub Micro3() 
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 
Cancel = True 
Sheets("見積").Range("D1:F1").Value = Target.EntireRow.Range("A1:C1").Value 
End Sub 
End Sub 
だったとしますと、具合が悪いですね。これだと「デバッグ」以前に、コンパイルエラーで 
コンパイラーから「しかられます」 
 
Sub から始まる1つのマクロは、必要なコードをかい多後、End Sub で終わる必要があります。 
↑のコードだと、Sub Micro3() に対して、End Sub が出てくる前に、Subから始まる別のマクロ 
Private Sub Worksheet_BeforeDoubleClickが記述されていますので、 
Sub Micro3()にたいするEnd SUbがないよということになります。 
 
もし、acecさんのやろうとしておられることが 
・あるセルを選択する。 
・その状態でボタンをクリックする。 
・クリックされたら選択されている行のA列〜C列の値を見積シートのD1:F1に転記させたい。 
こういうことであれば、 
 
Sub Sample() 
  Sheets("見積").Range("D1:F1").Value = ActiveCell.EntireRow.Range("A1:C1").Value 
End Sub 
 
これを「標準モジュール」に記述して、ボタンに登録してください。 
 
さて、 
 
>それから、素人考えなのですが、 
>Sheets("見積").Range("D1:F1").Value = Target.EntireRow.Range("A1:C1").Value 
>だと、常にA1:C1のデータが取得されませんか? 
 
確かにこの書き方は、「ちょっとマニアック?」です。 
通常、A1といえば、シートの一番左上のA1という場所だと認識しています。 
本来は、ある領域.Range("A1") というのが正しい書き方で、これは、ある領域の左上隅から数えて 
最初の列、最初の行という意味なんです。単純に Range("A1") と書きますと 
標準モジュールで言えば、アクティブシートのセル全体.Range("A1") という意味になります。 
だから、いわゆる A1 を指すことになります。 
で、上のケースでは、ある領域というのが、Target.EntireRow つまり、それが10行目だとしたら 
10行目のセルが属する、その行全体 ということです。つまり10行目全体ですね。 
その10行目全体の、A1 というと、A10 のことですし、C1 というと C10 のことになります。 
(Aはその領域の1番目の列、Cは、その領域の3番目の列、1 はその領域の1番目の行) 
 
 | 
     
    
   |