- ベストアンサー
Excel VBAで選択されたセルに値を追加する方法
- Excelの仕事の効率化のために、VBAを学んでいます。しかし、現在、選択されたセルに値を追加する機能でつまずいています。具体的には、選択された位置から離れた複数のセルに、リストから参照した値を追加したいと考えています。しかし、最初に選択したセルの内容が、後続のセルにも反映されてしまいます。この問題を解決する方法を教えていただけると幸いです。
- 現在、ExcelのVBAを学習しているのですが、選択されたセルに値を追加する処理で問題が発生しています。具体的には、Ctrlキーを押しながら複数のセルを選択し、リストから参照した値を選択されたセルの内容に追加したいと考えています。しかし、最初に選択したセルの内容が、後続のセルにも反映されてしまいます。この問題を解決する方法を教えていただけないでしょうか?
- ExcelでVBAを使って、選択されたセルに値を追加する方法について教えてください。具体的には、Ctrlキーを押しながら複数のセルを選択し、リストから参照した値を選択されたセルの内容に追加したいと思っています。ただし、最初に選択したセルの内容が、後続のセルにも反映されてしまうという問題があります。この問題を解決する方法を教えていただけますか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
つい昨日、似たような質問に回答しましたが、 http://qanda.rakuten.ne.jp/qa7915458.html こちらが参考になりますかどうか(笑)。
その他の回答 (3)
- MarcoRossiItaly
- ベストアンサー率40% (454/1128)
Target と Selection の両立って、初め言ってる意味がよく分からなかったんですが、連続してないセルの同時選択ってことね。器用なことをされますね(笑)確かに、不可能ということはない。 けれど、マクロ入れたボタンを押したら Selection に対して書換えって感じにでもしておけば、間違えないように操作しなきゃとか、そんな気苦労もしないで済むのでは、と思いました。ショートカットキーで実行でもいいし。
お礼
ありがとうございます。 もっとVBAに関して色々なことを勉強していきたいと思います。
- keithin
- ベストアンサー率66% (5278/7941)
こんなカンジですかね。 private sub worksheet_change(byval Target as excel.range) dim res dim h as range on error goto errhandle res = target.cells(1).validation.type application.enableevents = false for each h in selection if h.address <> target.cells(1).address then h = h & target.cells(1) end if next application.enableevents = true errhandle: end sub #入力規則のセル番地が固定で1個だけと絶対保証できるなら,もうちょっと単純化できるかもですね。 必要に応じて応用して,工夫してみて下さい。
お礼
ありがとうございます。 回答者様に教えていただいた方法でも実現ができました。
- web2525
- ベストアンサー率42% (1219/2850)
Selection.Value = Selection.Value & k ↑ ここを ↓ For Each c In Selection c.Value = c.Value & k Next この形に変更
お礼
ありがとうございます。 とても参考になりました。
お礼
ありがとうございます。 回答者様の方法で難なく実現できることができました。 ありがとうございました。