Excel VBA質問箱 IV

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

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


155 / 13645 ツリー ←次へ | 前へ→

【81740】選択しているセルの一部に文字をいれる そらお 21/4/23(金) 15:42 質問[未読]
【81741】Re:選択しているセルの一部に文字をいれる 通りすがり 21/4/23(金) 16:22 発言[未読]
【81742】Re:選択しているセルの一部に文字をいれる 通りすがり 21/4/23(金) 16:37 発言[未読]
【81743】Re:選択しているセルの一部に文字をいれる 通りすがり 21/4/23(金) 16:40 発言[未読]
【81744】Re:選択しているセルの一部に文字をいれる 通りすがり 21/4/23(金) 16:45 発言[未読]
【81746】Re:選択しているセルの一部に文字をいれる そらお 21/4/23(金) 17:51 お礼[未読]
【81749】Re:選択しているセルの一部に文字をいれる 通りすがり 21/4/24(土) 21:56 発言[未読]

【81740】選択しているセルの一部に文字をいれる
質問  そらお  - 21/4/23(金) 15:42 -

引用なし
パスワード
   選択しているセルを自動取得し、始めと終わりのセルに文字を入れたいのてすが、例えばC3からF3を選択しているしているときに、C3には"start"、F3には"goal"という感じてす。また、選択しているセルが1つの場合にはそこに"s/g"と入れたいてす。
お力添えお願いします。

【81741】Re:選択しているセルの一部に文字をいれる
発言  通りすがり  - 21/4/23(金) 16:22 -

引用なし
パスワード
   参考HPです。

ht tp://officetanaka.net/excel/vba/tips/tips111b.htm

【81742】Re:選択しているセルの一部に文字をいれる
発言  通りすがり  - 21/4/23(金) 16:37 -

引用なし
パスワード
   参考です。

Sub tesgt()
Dim rng As Range
Dim c As Range
Dim rngcnt As Integer
Dim cnt As Integer
 Set rng = Selection
 rngcnt = rng.Count
 cnt = 0
 For Each c In rng
  cnt = cnt + 1
  If cnt = 1 Then
   If cnt = rngcnt Then
     c.Value = "s/g"
   Else
     c.Value = "start"
   End If
  ElseIf cnt <> 1 And cnt = rngcnt Then
   c.Value = "goal"
  End If
 Next c
 
End Sub

【81743】Re:選択しているセルの一部に文字をいれる
発言  通りすがり  - 21/4/23(金) 16:40 -

引用なし
パスワード
   ↑はループ処理してますが、ループ処理
をしないでもできそうです。

【81744】Re:選択しているセルの一部に文字をいれる
発言  通りすがり  - 21/4/23(金) 16:45 -

引用なし
パスワード
   ループ処理しない方法です。

Sub test2()
Dim rng As Range
 Set rng = Selection
 If rng.Count = 1 Then
   rng.Value = "s/g"
 Else
   rng.Resize(1, 1).Value = "start"
   rng.Resize(1, 1).Offset(rng.Rows.Count - 1, rng.Columns.Count - 1).Value = "goal"
  End If
End Sub

【81746】Re:選択しているセルの一部に文字をいれる
お礼  そらお  - 21/4/23(金) 17:51 -

引用なし
パスワード
   通りすがり様 
上手く行きました。
ありがとうございました

【81749】Re:選択しているセルの一部に文字をいれる
発言  通りすがり  - 21/4/24(土) 21:56 -

引用なし
パスワード
   お遊びコードです。
セル範囲をドラッグで選択して試してみてください。

ドラッグの方向によってstartとgoalのセルが違ってきます。
ドラッグ開始セルのアドレス情報を使用しています。

Sub test()
Dim sel As Range
Dim tl As Range
Dim tr As Range
Dim bl As Range
Dim br As Range
Dim startcell As Range
Dim goalcell As Range
 Set sel = Selection
 Set tl = sel.Resize(1, 1)
 Set tr = tl.Offset(, sel.Columns.Count - 1)
 Set bl = tl.Offset(sel.Rows.Count - 1)
 Set br = tl.Offset(sel.Rows.Count - 1, sel.Columns.Count - 1)
 'MsgBox "tl:" & tl.Address & vbCrLf & "tr:" & tr.Address & vbCrLf & "bl:" & bl.Address & vbCrLf & "br:" & br.Address
 Select Case ActiveCell.Address
  Case tl.Address
  Set startcell = tl
  Set goalcell = br
  Case br.Address
  Set startcell = br
  Set goalcell = tl
  Case bl.Address
  Set startcell = bl
  Set goalcell = tr
  Case tr.Address
  Set startcell = tr
  Set goalcell = bl
  End Select
  If startcell.Address = goalcell.Address Then
   startcell.Value = "s/g"
  Else
   startcell.Value = "start"
   goalcell.Value = "goal"
  End If
  Set tl = Nothing
  Set tr = Nothing
  Set bl = Nothing
  Set br = Nothing
  Set startcell = Nothing
  Set goalcell = Nothing
  Set sel = Nothing
End Sub

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