Excel VBA質問箱 IV

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

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


26557 / 76732 ←次へ | 前へ→

【55506】結合セルへの自動入力
質問  VBA初心者  - 08/5/9(金) 8:04 -

引用なし
パスワード
   独学で適当に作っているのでお恥ずかしいのですが…
以下の様なマクロを作成してみました。

1.A1〜A10のセルに1〜10の数字を入力。
2.セルB〜D、E〜G、H〜Jは"横方向に結合"されており、
3.例えばB1のセルを選択すると、そのセルには「1」が入力され、E4のセルを選択すると、
 そのセルには「4」が入力されます。
4.更にH4のセルを選択すると、E4のセルに入力されていた「4」がH4のセルに移動する。

…という感じの処理をさせようとしています。

頑張って以下のマクロを書いてみたのですが、このマクロでは、
□例えばE2:E5(セルが結合されているので実際にはE2:G5?)のセルを選択した時、
 選択セルの全てに「2」が入力されてしまいます。

これをそれぞれ「2」〜「5」を入力、又はE2セルに「2」のみ入力し、他のセルは変化
させないという風にするには、どうすれば良いでしょうか?

又、もし宜しければ、これ以外にもっとスマート(短い)なマクロがあればご教授
頂ければ…等と思います。

※セルが結合されていなければうまく動作するのですが、どうしても結合された
 状態で処理しなければならず、質問しております。

-------------------------------------------------------------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim a, b, i, j
With Target
For i = 1 To 10
 If ActiveCell.Address = "$B$" & i Then
  a = "$B$": b = 3
 ElseIf ActiveCell.Address = "$E$" & i Then
  a = "$E$": b = 6
 ElseIf ActiveCell.Address = "$H$" & i Then
  a = "$H$": b = 9
 End If
 For j = 5 To 8 Step 3
  If Cells(i, j) <> "" Then Exit For
 Next j
 If b = j Then End
 If ActiveCell.Address = a & i Then
  If Cells(i, j).Value <> "" Then
  .Value = Cells(i, j).Value
  Else
  .Value = Cells(i, 1).Value: End
  End If
  If ActiveCell.Address <> "$B$" & i Then
   Cells(i, j).FormulaR1C1 = ""
   End If
  Exit For
 End If
Next i
End With
End Sub
0 hits

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

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