No.8ベストアンサー
- 回答日時:
>この固定範囲を複数設定することはできますか?
色々な方法があるでしょうが、一回こっきりということで。。。
---------------------------------------------------------
Sub Test222()
Dim R As Range
Dim myArea As Range
Set myArea = Union(Range("A3:B6"), Range("C5:D10"), Range("F2:F8"))
For Each R In myArea
If R.Value <> "" Then
R.Value = R.Value & "【変更分】"
End If
Next R
End Sub
-----------------------------------------------------
範囲が多くて一行が長くなる場合は、
Set myArea = Union(Range("A3:B6"), Range("C5:D9"), Range("F2:F8"))
Set myArea = Union(myArea, Range("H5:H7"), Range("J3:J8))
このように、前の行のmyAreaごと結合(Union)すればいいです。
おはようございます。
再度の回答ありがとうございます。
こちらのコードで今回希望していたことがすべて出来ました!
今回、『Union』を使用したのは初めてでしたので、勉強になりました。
ありがとうございました。
No.7
- 回答日時:
こんばんは。
>この固定範囲を複数設定することはできますか?
以下は、固定範囲ではなく、ユーザーオプションです。
ただ、これ以上は、手を加えたくないなっていうか、製作者の意図が伝わらない場合は、質問者さんの目的が見えていないことが多いので、手を加えないほうがよいのですね。時には、掲示板でも、こういうのを作るっていうことだけです。単に参考までです。別に、単に範囲を決めておいて、ループでまわすだけなら、VBAの初歩の初歩です。
Sub EditCellsText2()
Dim r As Range
Dim cl As Integer
Dim strText As String
Dim c As Range
With Application
On Error Resume Next
.DisplayAlerts = False
Set r = .InputBox("変更するセルの範囲を選択してください" & vbCrLf & _
"飛び範囲の場合は、"", ""(コンマ)でつないでください", "セル選択", Type:=8)
.DisplayAlerts = False
On Error GoTo 0
If r Is Nothing Then Exit Sub
r.Select
strText = .InputBox("セルに追加する文字を入力してください。", "文字入力", Type:=2)
If strText = "False" Or strText = "" Then Exit Sub
If MsgBox(strText & " を選択範囲の文字列の後に入れます。よろしいですか?", vbOKCancel) = vbCancel Then Exit Sub
.ScreenUpdating = False
For Each c In r
If VarType(c.Value) = vbString Then
c.Value = c.Value & strText
End If
Next c
.ScreenUpdating = True
End With
r.Cells(1).Select
Set r = Nothing
End Sub
おはようございます。
再度の回答ありがとうございます。
こちらのコードだと、追加したい文字をその都度ダイアログボックスに入力するので、コードを変更することなく文字を追加でき、他でも利用できそうです。
ありがとうございました。
No.5
- 回答日時:
一回こっきりでしょうからあっさりと。
例えば、C7~I38の範囲で未入力セルを除く場合は
--------------------------------------------------
Sub Test()
Dim R As Range
For Each R In Range("C7:I38")
If R.Value <> "" Then
R.Value = R.Value & "【変更分】"
End If
Next R
End Sub
-------------------------------------------------------
UsedRangeを使う方がシンプルですが、特定文字を追加したくないセルもあるでしょうから、固定範囲がいいでしょうね。
こんばんは。
早速、教えていただいたマクロを実行してみましたところ、希望していることができました。ありがとうございました。
>特定文字を追加したくないセルもあるでしょうから、固定範囲がいいでしょうね。
そうなんです!おっしゃるとおり一回こっきりで、特定文字を追加したくないセルもありますので、固定範囲がいいのですが、この固定範囲を複数設定することはできますか?
マクロに関しては、まだ勉強し始めてそう長くないので、どこをどうすればいいというのを教えていただけると助かります。
No.4
- 回答日時:
こんばんは。
設問を勘違いしていなければ、マクロでは、こういうことになりますね。このマクロは1列ごとで、文字列のある範囲のセルをすべて変更しようとします。
'標準モジュールのみ
'-------------------------------------------
Sub EditCellsText()
Dim r As Range
Dim cl As Integer
Dim strText As String
Dim c As Range
With Application
On Error Resume Next
.DisplayAlerts = False
Set r = .InputBox("変更する列の任意のセルを選択してください", "セル選択", Type:=8)
.DisplayAlerts = False
On Error GoTo 0
If r Is Nothing Then Exit Sub
cl = r.Cells(1).Column '列数
strText = .InputBox("セルに追加する文字を入力してください。", "文字入力", Type:=2)
If strText = "False" Or strText = "" Then Exit Sub
Range(Cells(1, cl), Cells(65536, cl).End(xlUp)).Select
If MsgBox(strText & " を選択範囲の文字列の後に入れます。よろしいですか?", vbOKCancel) = vbCancel Then Exit Sub
.ScreenUpdating = False
For Each c In Range(Cells(1, cl), Cells(65536, cl).End(xlUp))
If VarType(c.Value) = vbString Then
c.Value = c.Value & strText
End If
Next c
.ScreenUpdating = True
End With
Set r = Nothing
End Sub
'-------------------------------------------
こんばんは。
回答ありがとうございます。
作っていただいたマクロを実行してみました。
希望することは、ほぼ出来ました。列ごとで文字列のある範囲のセルをすべて変更しようとするマクロとのことでしたが、質問文で書いているC7:C38というのは表の一部でして、列全体に特定の文字が追加されると、列のタイトルにまで文字が追加されてしまいます。
『複数の固定範囲』ということではできないでしょうか?
コードの一部を変更したらできるかなと思って、コードを見ていたのですが、どこをどうしたらいいのかがワカリマセン。。。
もしよろしければ、アドバイスくださると助かります。
No.3
- 回答日時:
表示だけでいいなら
「セルの書式設定」「表示形式」で「ユーザー定義」を選択して
「@"[変更分]"」
とすれば入力した文字は 「*******[変更分]」のようになります。
数式だとD7に
=C7&"[変更分]"
としてD38までコピーしてから
D7:D38をコピーして、C列に「編集」「形式を選択して貼り付け」で「値」を選択してOKしてください。
不要のD7:D38を削除すれば終了です。
回答ありがとうございます。
表示形式のユーザー定義を使用することで、見た目だけなら簡単にできますね。勉強になりました。
ただ、今回の場合は、この特定の文字が入っているセルを集計したりもするので、実際に入力する方法でいきたいと思います。
教えていただいたユーザー定義を使用する方法は他で利用できそうなので、大変参考になりました!ありがとうございました。
No.2
- 回答日時:
もし隣のD列が空いていれば、D7に
=C7&"[変更分]"と入力し、D38までドラッグして式をコピーします。
これでD7~D38にそのように表示されたと思います。
次ぎに、D7~D38を範囲選択してコピーし、C7:C38に値貼り付けすればOKです。
この回答への補足
早速のご回答ありがとうございます。
No.1のご回答に対して補足させていただいたのと同じ内容になりますが、回答いただいた方法は私も考えました。
質問文にはC7:C38に文字が入力されていて…
としか書きませんでしたが、実はこのC7:C38が1ページ分で、横へ同様の書式で7ページ分ありまして、近いセルで空きの列もありませんので、今回はできれば、作業列を使用しない方法でいきたいと思います。
説明が足りず、お手数かけて申し訳ありません。
No.1
- 回答日時:
例えばD列のD7に「=C7&"追加したい文字列"」と式を入れD38まで式をコピー
その後D7:D38をコピーしC7に「形式を選択して貼付け」で「値」を選択して
貼り付けてはどうですか?
この回答への補足
早速のご回答ありがとうございます。
回答いただいた方法は私も考えました。
質問文にはC7:C38に文字が入力されていて…
としか書きませんでしたが、実はこのC7:C38が1ページ分で、横へ同様の書式で7ページ分ありまして、近いセルで空きの列もありませんので、今回はできれば、作業列を使用しない方法でいきたいと思います。
説明が足りず、お手数かけて申し訳ありません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) EXCELでリターンキーが押されたらそのセルに特定の文字を表示したいのですが。 2 2022/08/07 12:58
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Excel(エクセル) セルに入力した小文字アルファベット、数字を大文字表示させるには? 3 2022/07/13 10:01
- Excel(エクセル) ExcelのIF関数 2 2022/04/14 16:11
- Excel(エクセル) 全角文字「ヴ」の半角文字「ヴ」への変換方法について 3 2022/11/05 12:07
- Excel(エクセル) Excelの空文字判定について 7 2023/01/06 13:25
- Visual Basic(VBA) excelにて、特定の列に数字入力してあれば、入力してある行コピーして 別ファイルに張り付ける 2 2022/08/11 05:33
- Excel(エクセル) Excelの入力規則にいれる関数について 7 2022/12/22 10:19
- Visual Basic(VBA) エクセルVBAについて 2 2023/01/31 16:21
- Excel(エクセル) Excelの文字列を数字に変換する方法について 6 2023/07/31 21:18
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
名簿の漢字名を関数で半角カナ...
-
EXCELで縦の行全てに一括して文...
-
【エクセル】入力規則のプルダ...
-
EXCEL 連動したドロップダウン...
-
Excelのテーブル上のセルの保護...
-
エクセルで行の一番上にセルに...
-
エクセルでエンターを押すと隣...
-
エクセルの数式を等間隔にオー...
-
エクセルで決められた合計にな...
-
空白部分に連番の数字を記入し...
-
指定した行に飛ぶ事って可能で...
-
Excelでセルを次の行の先頭の列...
-
一つのセル内でVLOOKUPで抽出し...
-
Excelで相対度数を求めたいので...
-
エクセルで休日の「休」という...
-
エクセル・・色の着いたセルの...
-
EXCELのNOW()関数の...
-
エクセルのオートフィル機能で...
-
エクセルで隣接しないセルに順...
-
word vbaでword上の表の、任意...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelのテーブル上のセルの保護...
-
名簿の漢字名を関数で半角カナ...
-
EXCEL 連動したドロップダウン...
-
EXCELで縦の行全てに一括して文...
-
【エクセル】入力規則のプルダ...
-
エクセルで決められた合計にな...
-
エクセルで行の一番上にセルに...
-
エクセルで空白に自動で文字を...
-
エクセルでエンターを押すと隣...
-
EXCELのNOW()関数の...
-
エクセルのオートフィル機能で...
-
オートフィルを列すべて(一番...
-
空白部分に連番の数字を記入し...
-
エクセルで休日の「休」という...
-
エクセル・・色の着いたセルの...
-
Excelでセルを次の行の先頭の列...
-
Excelで相対度数を求めたいので...
-
指定した行に飛ぶ事って可能で...
-
エクセルで年を1年ずつ増やすや...
-
エクセルの数式を等間隔にオー...
おすすめ情報