Excel VBA質問箱 IV

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

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


9508 / 13644 ツリー ←次へ | 前へ→

【26710】「〃」を元の値に置き換える方法 ri 05/7/14(木) 15:43 質問[未読]
【26711】Re:「〃」を元の値に置き換える方法 IROC 05/7/14(木) 15:49 回答[未読]
【26716】Re:「〃」を元の値に置き換える方法 MARBIN 05/7/14(木) 21:29 回答[未読]
【26717】Re:「〃」を元の値に置き換える方法 MARBIN 05/7/14(木) 21:32 回答[未読]
【26726】Re:「〃」を元の値に置き換える方法 ichinose 05/7/15(金) 9:53 発言[未読]
【26740】Re:「〃」を元の値に置き換える方法 Kein 05/7/15(金) 16:37 回答[未読]
【26718】Re:「〃」を元の値に置き換える方法 YN 05/7/14(木) 21:45 回答[未読]
【26728】Re:「〃」を元の値に置き換える方法 Jaka 05/7/15(金) 10:29 回答[未読]
【26945】今ごろですが Jaka 05/7/25(月) 9:54 発言[未読]
【26744】Re:「〃」を元の値に置き換える方法 ri 05/7/15(金) 17:58 お礼[未読]

【26710】「〃」を元の値に置き換える方法
質問  ri  - 05/7/14(木) 15:43 -

引用なし
パスワード
   マクロ初心者です。「〃」マークを元の値に置き換える方法を教えていただきたい
のですが、どなたかわかる方がいらっしゃいましたらよろしくご指導お願い致します。


このようなデータがあります。

12345


22341
34567


これを以下のようなものにしたいと思います。
12345
12345
12345
22341
34567
34567

【26711】Re:「〃」を元の値に置き換える方法
回答  IROC  - 05/7/14(木) 15:49 -

引用なし
パスワード
   For-Nextで1セルずつ処理しては如何でしょうか?
Ifで下のセルと比較して、〃だったら置き換えるような感じで。

【26716】Re:「〃」を元の値に置き換える方法
回答  MARBIN  - 05/7/14(木) 21:29 -

引用なし
パスワード
   マクロではなくしかもちょっと手間がかかりますが・・・。

対象列を選択して編集→置換(Ctrl + H でも可)
検索する文字列→〃
置換後の文字列→(ブランク)
「すべて置換」をクリック

編集→ジャンプ(F5キーでも可)→ セル選択
「空白セル」にチェック

数式バーに
=A1
と入力し
Ctrl+Enter

でいかがでしょう?

【26717】Re:「〃」を元の値に置き換える方法
回答  MARBIN  - 05/7/14(木) 21:32 -

引用なし
パスワード
   先ほど提示した方法は、A列を対象に想定しています。

>数式バーに
>=A1
>と入力し

ここを適宜読み替えてください。

【26718】Re:「〃」を元の値に置き換える方法
回答  YN  - 05/7/14(木) 21:45 -

引用なし
パスワード
   ▼ri さん:
今晩は

私なりに作って見ました。
一度試してみてください。

Sub 変換()

Dim i As Integer
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
On Error Resume Next
If Cells(i, 1).Value = "〃" Then
Cells(i, 1).Value = Cells(i, 1).Offset(-1).Value
End If
Next

End Sub

【26726】Re:「〃」を元の値に置き換える方法
発言  ichinose  - 05/7/15(金) 9:53 -

引用なし
パスワード
   ▼MARBIN さん:
こんにちは。

>マクロではなくしかもちょっと手間がかかりますが・・・。
>
>対象列を選択して編集→置換(Ctrl + H でも可)
>検索する文字列→〃
>置換後の文字列→(ブランク)
>「すべて置換」をクリック
>
>編集→ジャンプ(F5キーでも可)→ セル選択
>「空白セル」にチェック
>
>数式バーに
>=A1
>と入力し
>Ctrl+Enter
>
>でいかがでしょう?

これをVBAで行うと、
'==============================================
Sub main()
  On Error Resume Next
  Dim rng As Range
  Set rng = Selection
  With rng
    .Replace "〃", ""
    With .SpecialCells(xlCellTypeBlanks)
     .Formula = "=r[-1]c"
     End With
    .Value = .Value
    End With
End Sub

こんなコードでしょうか?

【26728】Re:「〃」を元の値に置き換える方法
回答  Jaka  - 05/7/15(金) 10:29 -

引用なし
パスワード
   こんにちは。
使ったセル全部対象ですが。

Dim Fcl As Range, FindSt As String
FindSt = "〃"
With ActiveSheet.UsedRange
  Set Fcl = .Find(FindSt, After:=.Cells(.Count), LookAt:=xlWhole, MatchCase:=True, MatchByte:=True)
  Do Until Fcl Is Nothing
    If Fcl.Value = FindSt And Fcl.Offset(-1).Value <> FindSt And Fcl.Row <> 1 Then
     Fcl.Value = Fcl.Offset(-1).Value
    End If
    Set Fcl = .FindNext(After:=Fcl)
  Loop
End With

【26740】Re:「〃」を元の値に置き換える方法
回答  Kein  - 05/7/15(金) 16:37 -

引用なし
パスワード
   私も数式で入力する方法を考えましたが、"" は文字列であり、その他は数値である。
ということなら・・

Sub TestZ()
  On Error GoTo ELine
  With Selection
   .SpecialCells(2, 2).FormulaR1C1 = "=R[-1]C"
   .Copy
   .PasteSpecial xlPasteValues
  End With
ELine:
  Application.CutCopyMode = False
End Sub

で、出来ると思います。



【26744】Re:「〃」を元の値に置き換える方法
お礼  ri  - 05/7/15(金) 17:58 -

引用なし
パスワード
   問題なく解決いたしました。
ありがとうございます!

【26945】今ごろですが
発言  Jaka  - 05/7/25(月) 9:54 -

引用なし
パスワード
   >    If Fcl.Value = FindSt And Fcl.Offset(-1).Value <> FindSt And Fcl.Row <> 1 Then
これじゃダメですね!
こうやって分けないと...。

Dim Fcl As Range, FindSt As String
FindSt = "〃"
With ActiveSheet.UsedRange
  Set Fcl = .Find(FindSt, After:=.Cells(.Count), LookAt:=xlWhole, MatchCase:=True, MatchByte:=True)
  SavAd = Fcl.Address
  If Not (Fcl Is Nothing) Then
    Do
     If Fcl.Row <> 1 Then
       If Fcl.Value = FindSt And Fcl.Offset(-1).Value <> FindSt Then
        Fcl.Value = Fcl.Offset(-1).Value
       End If
     End If
     Set Fcl = .FindNext(After:=Fcl)
    Loop Until SavAd = Fcl.Address Or Fcl Is Nothing
  End If
End With

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