Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


26556 / 76732 ←次へ | 前へ→

【55507】Re:結合セルへの自動入力
回答  ひげくま  - 08/5/9(金) 9:20 -

引用なし
パスワード
   > 1.A1〜A10のセルに1〜10の数字を入力。
> 2.セルB〜D、E〜G、H〜Jは"横方向に結合"されており、
> 3.例えばB1のセルを選択すると、そのセルには「1」が入力され、E4のセルを選択すると、
>  そのセルには「4」が入力されます。
> 4.更にH4のセルを選択すると、E4のセルに入力されていた「4」がH4のセルに移動する。
>
> …という感じの処理をさせようとしています。

1〜2は、マクロでの処理ではなくて、マクロを実行する段階でのシートの状態ですよね。

3で、 いきなり「例えば」と言われても、B1とE4を選択したときの処理しか解りません。それ以外のセルを選択したときはどういう処理をしたいのかが全然解りません。
入力される値が定数なのであれば、わざわざマクロで処理する必要はないと思いますけど。

もっと解りやすい説明をしましょう。

ということで、何をしたいのかがよく解っていない状態ですが、

> □例えばE2:E5(セルが結合されているので実際にはE2:G5?)のセルを選択した時、
> 選択セルの全てに「2」が入力されてしまいます。

に対しての回答をします。

>  .Value = Cells(i, 1).Value: End

の部分で2を入力しているわけですが、.Value は Target.Value で、選択範囲すべてのセルの値のことになります。
それに対し、Cells(i, 1).Valueは、1つのセルの値=1つの値になります。
ということで、複数のセルに同じ1つの値が入って当然、というわけですね。

やりたいことを実現するためには、
.Value = Cells(i, 1).Resize(.Count).Value
とすれば良いです。
0 hits

【55506】結合セルへの自動入力 VBA初心者 08/5/9(金) 8:04 質問
【55507】Re:結合セルへの自動入力 ひげくま 08/5/9(金) 9:20 回答
【55510】Re:結合セルへの自動入力 VBA初心者 08/5/9(金) 9:52 お礼

26556 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free