[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『alt=』(im)
ひとつのセルに
あいalt="うえ"お
と入っている時「うえ」を削除したいのですが良い数式はありますでしょうか。セルには他の文字や"など記号もたくさん入っております。また、ひとつのセルにalt=""がいくつも入っている場合もあります。
※置換はセルの文字が多すぎで一括で処理が出来ませんでした。
< 使用 Excel:Excel2003、使用 OS:Windows8 >
検索 : alt="*" 置換 : alt=""
ではダメなの? (GobGob) 2016/08/10(水) 14:40
数式では難しいかと思うので、ユーザー定義関数で。
Alt+F11キーでVBE画面を出して、メニューの挿入で標準モジュールを用意して、
右側のエディタ画面に下記コードをコピペ、
Function test(r As Range) As Variant
Dim v As Variant Dim i As Long Dim j As Long Dim k As Long If r.Value <> "" Then v = Split(r.Value, "alt=""") j = UBound(v) For i = 0 To j k = InStr(1, v(i), """") If k > 0 Then v(i) = Mid(v(i), k, Len(v(i))) End If Next End If test = Join(v, "alt=""") End Function
で、セルA1に「あいalt="うえ"お」のように入力されていたら、セルB1等に
=test(A1)
としてみて下さい。
(ウッシ) 2016/08/10(水) 14:52
xさま 他のソフトウェアもいくつか試してみましたがダメでした。。
GobGobさま そちらで置換のボタンを押すと、ひとつのセルの内容が多すぎでエラーになってしまいました。。
ウッシさま やはりVBAしか無いのですね。VBAは基礎程度の知識しかなく試していなかったのですが、教えていただいたもので試してみます!
(im) 2016/08/10(水) 15:24
有難うございます!
早速試してみたのですが、セルの頭に
「<!--画像一枚 表示 --><div class="spaceU15"><img src="http…」
と入っていて、マクロを使うとなぜか
「"spaceU15"><img src="http」
からの表示となってしまいます。
色々調べたのですが原因がわからず、ご教授いただけますでしょうか。
ちなみに1つのセルの文字数は4000〜7000文字程度でした。
(im) 2016/08/10(水) 20:31
(γ) 2016/08/10(水) 21:21
あいalt="うえ"お
ひょっとして、セルの中にはダブルコーテーションではなくて、
あいalt=&quot;うえ&quot;お
と入っているのでは?
としたら、
Function test(r As Range) As Variant
Dim v As Variant Dim i As Long Dim j As Long Dim k As Long If r.Value <> "" Then v = Split(r.Value, "alt=&quot;") j = UBound(v) For i = 0 To j k = InStr(1, v(i), "&quot;") If k > 0 Then v(i) = Mid(v(i), k, Len(v(i))) End If Next End If test = Join(v, "alt=&quot;") End Functionに差し替えて下さい。
上記コードの、「&quot;」の部分は半角に直して下さい。
(ウッシ) 2016/08/12(金) 09:28
ウッシさま セルの中はダブルコーテーションになっております。
下記にひとつのセルの一部分のみ抜き出しました。参考になれば良いのですが…
<td valign="top" width="200" > <div><a rel="lightbox" href="画像URL"
title="掛け時計"><img src="画像URL" style="border-style:none;" alt="掛け時計 壁掛け ウォールクロック"/></a></div>
<div class="spaceU5" align="center"><font col【以下略(約4,000〜7000文字)】
(im) 2016/08/12(金) 10:23
Function test(r As Range) As Variant
Dim v As Variant Dim i As Long Dim j As Long Dim k As Long If r.Value <> "" Then v = Split(r.Value, "=""") j = UBound(v) For i = 0 To j - 1 If Right(v(i), 3) = "alt" Then k = InStr(1, v(i + 1), """") If k > 0 Then v(i + 1) = Mid(v(i + 1), k, Len(v(i))) End If End If Next End If test = Join(v, "=""") End Function
これに差し替えてきると、どうですか?
(ウッシ) 2016/08/12(金) 10:42
(γ) 2016/08/13(土) 11:21
ウッシさま いただいたマクロで問題なく削除が出来ました!本当に有難うございます!
γさま そうですね、さすがに2013は古いですよね。。切り替えも検討してみます! 私はWebショップを運営しているのですが、導入しているシステムでは、ページの一括更新にはcsvファイルをアップロードする必要があり、Excelでの編集を進めておりました。(最終的にcsvファイルとして保存、アップロードをします)
altの文字列削除の理由ですが、現在商品とは直接関係の無い文章が入っているページがあり、そちらが今後ペナルティとなることが決まったため、取り急ぎ削除を進めていた次第です。削除後はalt=""の中に商品名のみを反映する予定です。
皆様にご回答いただき本当に助かりました!有難うございます!
(im) 2016/08/19(金) 14:20
【元データ】
<!--画像一枚 表示 --> <div class="spaceU15"><img src="http://画像.jpg" style="border-style:none;" alt="★★★" /></div> <!--画像一枚 終了 --><BR><BR><h1><font size="-1">商品名 <font color="#cc0000">商品説明文
【変換後】
<!--画像一枚 表示 --> <div class="spaceU15"><img src="http://画像.jpg" style="border-style:none;" alt="" /></div> <!--画像一枚 終了 ="-1">商品名 <font color="#cc0000">商品説明文
と、上記のようにalt"★★★"の★★★は上手く消えたのですが
<!--画像一枚 終了 --><BR><BR><h1><font size="-1">商品名 が
<!--画像一枚 終了 ="-1">商品名 というように変わってしまいました。
何度も何度も本当に申し訳ございませんが
上記はどのようにすれば解決できますでしょうか。。
また、エラーが出る度にお伺いするのも申し訳ないので
エクセル以外で上記のような処理が一括で可能なものを
ご存知の方がいらっしゃればご教示いただけますと幸いです。
(im) 2016/08/23(火) 21:23
間違いが有りました。
Function test(r As Range) As Variant
Dim v As Variant Dim i As Long Dim j As Long Dim k As Long If r.Value <> "" Then v = Split(r.Value, "=""") j = UBound(v) For i = 0 To j - 1 If Right(v(i), 3) = "alt" Then k = InStr(1, v(i + 1), """") If k > 0 Then v(i + 1) = Mid(v(i + 1), k, Len(v(i + 1))) End If End If Next End If test = Join(v, "=""") End Function
に差し替えて下さい。
(ウッシ) 2016/08/24(水) 00:49
そして上記でも少し触れておりましたが、削除したalt=""の""の間に
特定の文字(B列に入力されている文字)を挿入したいと考えております。
マクロでの作業になる場合、またアドバイスをいただけますと幸いです。。
(im) 2016/08/24(水) 18:34
Function test(r As Range, t As Range) As Variant
Dim v As Variant Dim i As Long Dim j As Long Dim k As Long If r.Value <> "" Then v = Split(r.Value, "=""") j = UBound(v) For i = 0 To j - 1 If Right(v(i), 3) = "alt" Then k = InStr(1, v(i + 1), """") If k > 0 Then v(i + 1) = t & Mid(v(i + 1), k, Len(v(i + 1))) End If End If Next End If test = Join(v, "=""") End Function
セルA1に変換元文字列、B1に特定の文字とすると、セルC1に
=test(A1,B1)
で。
(ウッシ) 2016/08/24(水) 23:07
いつも早々にお返事をいただき有難うございます!
無事、追加も完了致しました!万が一エラーが出た場合は
またご相談させていただくかもしれませんが…
この度は本当に本当に助かりました!!!
私もこれからマクロの勉強を始めてみようと思います。
本当に有難うございました!
(im) 2016/08/25(木) 16:01
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.