- ベストアンサー
エクセル2003、コントロールツールボックスの「ボタン」について
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>回答番号:No.2 この回答へのお礼 回答番号:No.2のコードは逆でした。 ≪値の転送≫ Range("A1:D1").Value = Range("A5:D5").Value A5のデータがA1に転送されます。 他のセルデータも同じように転送されます。
その他の回答 (3)
- kmetu
- ベストアンサー率41% (562/1346)
あらかじめD列に(D1から)転送元の番地を E列に(E1から)その転送先番地を指定してるとしたら 以下のコードでいかがですか Dim mRange As Range For Each mRange In Range("D1:D" & Range("D" & Rows.Count).End(xlUp).Row) Range(Range("E" & mRange.Row)).Value = Range(mRange.Value).Value Next
- xls88
- ベストアンサー率56% (669/1189)
≪値の転送≫ Range("A5:D5").Value = Range("A1:D1").Value ≪転送元のセル番地と、転送先セル番地が指定≫ InputBoxメソッドをType:=8で使えばどうでしょうか。 実は奥が深いInputBox http://officetanaka.net/excel/vba/tips/tips37.htm
お礼
ご回答ありがとうございます。 説明不足で申し訳ありませんでした。 「転送元のセル番地と、転送先セル番地が指定」といいましたのは、 「その都度指定する」のではなく、 あらかじめ指定しておいたセル番地の値が、あらかじめ指定しておいたセル番地に、ボタンを押すと転送されるようにしたかったのです。 ここで、複数の指定したセル番地のデータが、複数の、指定したセルまで ボタンを押すだけで転送できればと思っています。 どうぞ、よろしくお願い申し上げます。
- kmetu
- ベストアンサー率41% (562/1346)
ボタンのマクロに 以下のマクロを指定してください Dim cRange As String, pRange As String cRange = InputBox("コピー元を指定してください") pRange = InputBox("貼付け先を指定してください") Range(cRange).Copy Range(pRange).PasteSpecial
補足
ご回答ありがとうございます。 説明不足で申し訳ありませんでした。 「転送元のセル番地と、転送先セル番地が指定」といいましたのは、 「その都度指定する」のではなく、 あらかじめ指定しておいたセル番地の値が、あらかじめ指定しておいたセル番地に、ボタンを押すと転送されるようにしたかったのです。 ここで、複数の指定したセル番地のデータが、複数の、指定したセルまで ボタンを押すだけで転送できればと思っています。 例えば A1はA4へ、B1はB4へ、C1はC4へという感じを、ボタンを1クリックで行えたらと思っております。 また、転送元のデータは、その都度変更されます。 参照させればよいのでは、というお言葉がありそうなのですが、 なぜこうしたいかと申しますと、 転送後のセルの値を使用して、転送元に新たに入力された値との間で差分を取りたいと思っております。 どうぞ、よろしくお願い申し上げます。
お礼
うまくいきました!理想どうりのものができました、ありがとうございました。