過去ログ

                                Page     539
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼選択した範囲に、別のセルのデータを入れる。  けんけん 03/1/11(土) 12:40
   ┗Re:選択した範囲に、別のセルのデータを入れる。  りん 03/1/13(月) 10:33
      ┗Re:選択した範囲に、別のセルのデータを入れる。  けんけん 03/1/13(月) 21:02
         ┗Re:選択した範囲に、別のセルのデータを入れる。  りん 03/1/13(月) 21:12
            ┗Re:選択した範囲に、別のセルのデータを入れる。  けんけん 03/1/13(月) 22:18

 ───────────────────────────────────────
 ■題名 : 選択した範囲に、別のセルのデータを入れる。
 ■名前 : けんけん <ks1955@mail.goo.ne.jp>
 ■日付 : 03/1/11(土) 12:40
 -------------------------------------------------------------------------
   みなさん、毎度お世話になっています。
こんなことしたいんですが、できますか。

はじめにマウスでセルを選択し(1つまたは複数のセル)、次に別のセルをマウスでクリックしてそのデータを前に選択したセルに入力させる。

例)セルA1〜A3とC2〜C8をドラッグしてから、セルL10をクリックすることで
L10のデータを選択したセルに入力させる。
 ───────────────────────────────────────  ■題名 : Re:選択した範囲に、別のセルのデータを入れる。  ■名前 : りん <rin_doggie@hotmail.com>  ■日付 : 03/1/13(月) 10:33  -------------------------------------------------------------------------
   けんけん さん、おはようございます。

>はじめにマウスでセルを選択し(1つまたは複数のセル)、次に別のセルをマウスでクリックしてそのデータを前に選択したセルに入力させる。

複数範囲を選択(離れていても可)している場合は、セル範囲を記憶し、単一セルを選択(クリック)した場合は、そのセルの値を記憶している範囲に与えます。

該当シートのイベントモジュールに書きます
 シートのタブで右クリックしてコードの表示にすると自動的にSelectionChangeが準備されます。
===============================================================
Dim r1 As Range '←ずっと記憶させておくために、Subより上に書く
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
  '選択範囲のセルの数で分岐
  Select Case Target.Count
   Case 1:
     '1個の時
     If Not r1 Is Nothing Then
      r1.Value = Target.Value
      Set r1 = Nothing '記憶範囲クリア
     End If
   Case Else:
     '2以上の時(選択範囲のイベントなので1未満はありえない)
     Set r1 = Target
  End Select
End Sub
===============================================================

こんな感じです。
 ───────────────────────────────────────  ■題名 : Re:選択した範囲に、別のセルのデータを入れる。  ■名前 : けんけん <ks1955810@ybb.ne.jp>  ■日付 : 03/1/13(月) 21:02  -------------------------------------------------------------------------
   りんさん、ありがとうございます。
こういう感じです。
ただ、セルを2個以上選択した場合はいいのですが
1つだけ選択した場合にうまく入力されないのですが
どうしてでしょうか
 ───────────────────────────────────────  ■題名 : Re:選択した範囲に、別のセルのデータを入れる。  ■名前 : りん <rin_doggie@hotmail.com>  ■日付 : 03/1/13(月) 21:12  -------------------------------------------------------------------------
   けんけん さん、こんばんわ。

>1つだけ選択した場合にうまく入力されないのですが
>どうしてでしょうか

説明をちゃんと読んでね。
>複数範囲を選択(離れていても可)している場合は、セル範囲を記憶し、単一セルを選択(クリック)した場合は、そのセルの値を記憶している範囲に与えます

応用
Dim r1 As Range '←ずっと記憶させておくために、Subより上に書く
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
  '選択範囲のセルの数とr1の状態で分岐
  Select Case Target.Count
   Case 1:
     '1個の時
     If Not r1 Is Nothing Then
      r1.Value = Target.Value
      Set r1 = Nothing '記憶範囲クリア
     Else
      Set r1 = Target 'ペーストセル入替
     End If
   Case Else:
     '2以上の時(選択範囲のイベントなので1未満はありえない)
     Set r1 = Target
  End Select
End Sub

単一セルにも対応しましたが、セルを移動するたびに何かのアクションが起きるので注意が必要です。
 ───────────────────────────────────────  ■題名 : Re:選択した範囲に、別のセルのデータを入れる。  ■名前 : けんけん <ks1955810@ybb.ne.jp>  ■日付 : 03/1/13(月) 22:18  -------------------------------------------------------------------------
   りんさん、どうもありがとうございました。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 539