Excel総合相談所 90at BSOFT
Excel総合相談所 90 - 暇つぶし2ch164:名無しさん@そうだ選挙にいこう
10/02/20 15:39:38
>>163
再インストールなんてサルでも(ry

165:名無しさん@そうだ選挙にいこう
10/02/20 18:26:23
【1 OSの種類         .】 Windows Vista
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

質問おねがいします。

文章を打ち込み、その文章を登録しておいた単語に置換し新たな文章を作成する方法をおたずねしたいです。




「元」   「変換」
です。   でござる。
私     拙者
でしょ?  でござろう?




などと登録して、

私は元気です。

拙者は元気でござる。

などとするにはどうしたらいいでしょうか?
お力を貸してください。

166:名無しさん@そうだ選挙にいこう
10/02/20 18:38:53
>>165
a列に変換元、b列に変換後、D1に文章があるとして

Sub test()
Dim r As Range
For Each r In Range("a1", Cells(Rows.Count, 1).End(xlUp))
Range("d1").Value = Replace(Range("d1"), r.Value, r.Offset(0, 1).Value)
Next
End Sub


関数は思いつかない

167:名無しさん@そうだ選挙にいこう
10/02/20 18:53:32
>>159
図は無く文字・数字だけです
>>159-160
そういったことが原因でファイルサイズが増えていくとは知りませんでした
原因が分かりとても助かりました、どうもありがとうございます

168:名無しさん@そうだ選挙にいこう
10/02/20 22:53:52
>>166
すいません、VBAなしではできないでしょうか?
よろしくおねがいします。

169:名無しさん@そうだ選挙にいこう
10/02/20 22:58:31
>>168
複数の置換を自動でやるのはVBAじゃないとできません
まあ、SUBSTITUTEをずらっと並べる方法もあるけど、
これだと7つまでになるのかな?

170:名無しさん@そうだ選挙にいこう
10/02/21 03:12:49
WindowsXP Excel2003 VBA初心者 VBAでの回答可
検索:セル番地を取得 ダブルクリック イベント

下のシートで

  A B C D E F G ‥
 1 あいうえおかき ‥ん
 2 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 3
 4

行1はタイトル行で、[あ~ん]までのいずれかのセルをダブルクリックすると、
その列を基準に並べ替えを行うようにしたいです。

実際はもっと大きな表で、頻繁に並べ替えをする必要がありオートフィルタを使っていましたが、
ソート時に他の列と複合させる必要が出来てしまい、マクロを使って出来ないか考え中です。
よい方法があれば教えてください。

171:名無しさん@そうだ選挙にいこう
10/02/21 08:29:52
>>168
一式じゃなくてよいなら、
A列に変換元、B列に変換後として
C1に「私は元気です。」
C2以下に
=SUBSTITUTE(C1,A2,B2)
以下コピー
で変わるね。

172:名無しさん@そうだ選挙にいこう
10/02/21 08:51:55
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

開発→挿入→ActiveXコントロールで
コンボボックスをシートに貼り付けたんですけど、
そこから入力範囲を設定するやり方が判りません。
以前のバージョンならコントロールタブが有ってそこで
入力範囲を設定できたと思うのですが。


173:名無しさん@そうだ選挙にいこう
10/02/21 09:22:51
>>172
もしかしてフォームのコンボボックスの事?
URLリンク(www.eurus.dti.ne.jp)

174:名無しさん@そうだ選挙にいこう
10/02/21 09:36:02
>>173
そうだったみたいです。ありがとう

175:名無しさん@そうだ選挙にいこう
10/02/21 12:34:21
【1 OSの種類         .】 WindowsVista
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

一つのセルに
>>5,>>10,>>20~25
と入力してあります。
ここから5,10,20,21,22,23,24,25を取り出して
B列にレス番を入力するにはどうしたらいいでしょうか?

176:名無しさん@そうだ選挙にいこう
10/02/21 18:56:35
>>170
ダブルクリックのイベントプロシージャを使う
対象ワークシートのコードウインドに記述

177:名無しさん@そうだ選挙にいこう
10/02/21 19:14:39
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

私の他に色んな人が入力するファイルを作成中。
1件につき1行で、数種類の条件(リストから選択)を入れると
特定の列に金額が出てくるようになってます。
金額の出る列は数式入りなので列ごと保護したいのですが、
そうすると行単位で並べ替えができません。
「ツール」>「保護」>「シートの保護」>「並べ替え」にチェックを入れてもダメ。
「数式入りの列を改変されないようにしたまま、並び替えができる」
この条件を満たすために何か便利な方法はないでしょうか。






178:名無しさん@そうだ選挙にいこう
10/02/21 19:27:49
>>175
A1セルに入っているとして
Sub aho()
Dim v, vv
Dim i As Long, ii As Long
Dim myRow As Long
myRow = 1
v = Replace(Range("a1").Value, ">>", "")
v = Split(v, ",")
For i = 0 To UBound(v)
vv = Split(v(i), "~")
For ii = vv(0) To vv(UBound(vv))

Cells(myRow, 2).Value = ii
myRow = myRow + 1
Next ii
Next i
End Sub

179:名無しさん@そうだ選挙にいこう
10/02/21 19:48:56
>>170
例としてA列~E列までを対象としたコードを作ってみた
尚、下記ではソート範囲外がダブルクリックされた時
Sortメソッドが実行時エラーになるけど
その対策を考えるのがメンドイのでOn Errorで逃げてます(笑)

'対象ワークシートのコードウインドに記述
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
If Target.Row = 1 Then
With Range("A1", Range("E1").End(xlDown))
On Error GoTo SERR
.Sort Key1:=Target, Order1:=xlAscending, Header:=xlYes
End With
End If
SERR:
End Sub

180:名無しさん@そうだ選挙にいこう
10/02/21 21:00:39
>>178
ありがとうございます
上手く動作しました
tensai()

181:名無しさん@そうだ選挙にいこう
10/02/21 22:39:00
【1 OSの種類         .】 WindowsVISTA
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

全シートの中の文字が入力されているセルの中にある特定の文字(httpとか)
が含まれるセルがあった場合、そのすべてのセルを削除(クリアでも可)
をしたいのですが可能でしょうか?


フィルタ掛けて1シートずつ削除ってのもできるのですが
如何せんシートの数が多いので教えてください

182:名無しさん@そうだ選挙にいこう
10/02/21 23:39:33
>181

置換 *http*→(空白)


183:170
10/02/22 11:23:08
>>176,179
ご回答ありがとうございました。やる気が湧いて来ました & 参考になります。
ifとthenとかもう少し勉強してみます。
あと、返信遅くてすみませんでした。

184:名無しさん@そうだ選挙にいこう
10/02/22 12:22:45
>>177
マクロ使うしかないんじゃないかなぁ。


保護解除

条件にそった並び替え

保護

って言う流れ。

マクロ記録すれば簡単だろ。


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch