• 締切済み

VBAエクセル 文字の一部を置き換える方法

エクセル2003を使っています。 エクセルマクロで b6セルに名前が入力されています。その名前の2文字目を●に置き換えたいです。 鈴木 花子→鈴● 花子 星 光子→星● 光子 すずき はなこ→すず● はなこ ほし みつこ→ほし● みつこ (1)シートが100枚くらいありまして、シート名に”届”という文字が含まれているシートのb6セルを置き換える (2)a6に名前のかなが入力されているので、そこも3文字目、4文字目を●に置き換える というマクロを教えてください。 よろしくお願いします。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

内容的に特に難しいこと内のだが、なぜ丸投げするのかな。 Sub test01() For Each sh In Worksheets '除外シート名ならスキップのコードをここに入れる MsgBox sh.Name MsgBox sh.Range("B6") Next End Sub で小数のシートのブックでやってみてB6セルの値が表示されることを確認。 ーー B6セルの第2文字目を一定の文字で変えるのは Sub test01() For Each sh In Worksheets '除外するシート名ならIFステートメントで、スキップするためのコードをここに入れる MsgBox sh.Name x = sh.Range("B6") Mid(x, 2, 1) = "●" MsgBox x sh.Range("B6") = x Next End Sub しかし 今 花子が今●花子で良いのか。 プログラムにはこういう想像を働かせることが、必要と思うが。

mnhc33
質問者

補足

回答ありがとうございます。自分なりに参考にしながら考えてみました。 Sub 名前消し1() Dim s As Worksheet For Each s In Worksheets If s.Name Like "届*" Then s.Activate x = s.Range("B6") Mid(x, 2, 1) = "●" s.Range("B6") = x z = s.Range("A6") Mid(z, 3, 1) = "●" s.Range("A6") = z End If Next End Sub で、マクロも動きました。 A6でできれば3文字めだけを●ではなく 3、4文字目を●1個に置換えたいです。 ご助言よろしくお願いします

関連するQ&A

  • エクセル:かなをローマ字で表示させたい

    エクセルにかなで文字入力させます。 例えば「はなこ」or「花子」と・・・。 これを他のシートのセルにリンクさせた時に、 自動でローマ字になるように設定したいのですが可能でしょうか? 例えば「hanako」というようにしたいのですが。

  • accessで項目内の文字を自動改行させたいと思っています。

    accessで項目内の文字を自動改行させたいと思っています。 access初心者です。2つ質問があります。 1.ふりがな、名前がそれぞれ別枠に入力されているのですが、ふりがなの直後に  「ctrl+enter」で改行をいれた形の「ふりがな+名前」の項目が自動作成できますか? 例. ふりがな     名前     → ふりがな+名前 すずき はなこ  鈴木 花子    すずき はなこ                     鈴木 花子 たなか たろう  田中 太郎  → たなか たろう                     田中 太郎 2.上記1の形で作成したデータをエクスポート(csvファイルで)したいと思っています。   excelで改行(alt+enter)されたデータをcsvファイルに保管した時と   全く同じ形式にしたいのですが、どのようにしたらいいのかご教示ください。   (excelファイルをcsvファイルで保管した場合、改行したところに「↑」が入っているようです)

  • エクセル・1つのセルに入った漢字(カナ)の分け方

    エクセルにお強い方、教えてください>< A1のセルに、 山田 花子(ヤマダ ハナコ) とあるとします。 私は B1のセルに 山田 花子 C1のセルに (ヤマダ ハナコ) と、分けてデータ化させたいのですが、 どのようにマクロを組めばよいでしょうか? また、分け終わったC1の(ヤマダ ハナコ)に 置換を使って( )をとって、 カナ を かな に直すため、 PHONETICと書式のふりがな機能を使って直しても データにエラーは起きずに処理できるでしょうか? 最終的なデータとして A1セル→山田 花子(やまだ はなこ) B1セル→山田 花子 C1セル→やまだ はなこ としたいのです。 ご存知の方いらっしゃいましたら、教えてください。 宜しくお願い致します。

  • エクセルのVBAについて質問です。

    エクセル2003のVBAについて質問です。 複数の検索したい文字列があり、複数の検索対象セルがあります。 セルの文字列が検索文字列のいずれかと一致したセルの背景の色を変えたいです。 よろしくおねがいします。 仕事でマクロを組まなけばならなくなってしまったのですが、 初心者のため検索してみたり調べてみたり、参考にして作ってみたのですがうまくいかないばかりかどんどん解らなくなってしまいました。 どうか助けてください。 sheet1のセルが検索対象 (全セル対象でも大丈夫ですが、検索したいセルはB2→J2、B11→J11、B20→J20の範囲です)、 sheet2のA列に検索したい文字列が入力されています。 この検索したい文字列は今後増えていく可能性があるので、増えた場合にも対応できるようにと考えています。 sheet1(検索対象) あ い う え あ お お sheet2(検索文字列) あ う お け き ↑の様に入力されており、sheet1の「あ」と「う」と「お」のセルの背景を変えたいです。 色を変えたいのはsheet1です。 findメソッドや繰り返し処理などを調べて実践してみたのですが、 いきなりマクロを組めといわれた超初心者には難しく質問しています。 自分でやってみたのですが、 sheet1の最初の「あ」のみが変換され、後に出てくる「あ」が変換されません… どうしたらいいのか…どうすることも出来ず困っております。 すみませんが、どなたか優しい方助けてください。 よろしくおねがいします><

  • エクセルで1つのセルに入っている文字を分ける

    エクセルで、ふりがなの名前の一覧があります。 苗字と名前の間は必ずスペースが入っています。 この状態で苗字と名前を違うセルに分けることができるでしょうか? (フリガナなので、文字数が一定ではありません) │すずき いちろう│     ↓ │すずき     │いちろう  │ よろしくお願いします。

  • excel 文字操作

    今、EXCELの関数に行きずまっています。 問題は   すずきたろう   → すずき たろう   さとうけん    → さとう けん   やまだはなこ   → やまだ はなこ     ・     ・      ・ と続きがあるのですが→にある通り、このかな氏名の苗字と名前の間に「空白」 をいれたいんです。 その関数があったら教えてください。 その他の方法もあったら教えてください。

  • エクセルのマクロで入力文字を一文字ずつ並んだセルに入れる

    エクセルマクロ超初心者です。 エクセルVBAでユーザーフォームを作成しました。 テキストボックスに入力した文字列を「登録」ボタン押下後、エクセルシートのセルに一文字づつ入るようにするにはどうすれば良いでしょうか? 例えばテキストボックスに「kohiro」と入力するとエクセルのsheet1のA1「k」、B1「o」、C1「h」、D1「i」、E1「r」、F1「o」となるようにしたいのです。入力する文字数は0~30文字までで、その都度長さは変わります。どうやって、文字をばらせばいいのか、またどうやって可変長の文字列を指定したセルに入力すればいいのかわかりません。どうかよろしくお願いいたします。

  • データを入力すると特定の文字等を返す方法について

    いつも相談に答えていただきありがとうございます。 今回は、 エクセルで、特定のセルに数字を入力をした場合、同じシートの別のセルに文字等を返す方法についてご教示ください。 例) sheet1の「A1セル」に日付を入力すると「B1セル」に文字を返しその「Bセル」に色をつける。       「2/17」     →      「○」を付けそのセルの色を「赤」にする。 エクセルのマクロ処理ではなく、簡単な計算式で対応できないでしょうか。 もし、セルに色を付けるのが困難な場合は「○」表示だけでも付けたいと考えています。宜しくご教示ほどお願いします。

  • VBA(エクセル)でコピー+文字を足す

    エクセルのVBAを使ってシート1の指定セルに打った内容を、マクロを実行するとシート2の指定セルに入力できるようにしました。 プログラムは s.Cells(r, 1).Copy Sheets("Sheet2").Range("A1") な感じです。 ここに文字を追加して出力したいのですが、どうすればいいのでしょうか? シート2にコピー出力される内容に、 『成績 第○位』という文字を追加して出力したいのです。つまり○の部分にシート1で打った内容(例11)を、 シート2では(例『成績 第11位』)という内容を表示したいのですが、どのようなプログラムを追加すればよいのでしょうか? 本当に困っています。どなたか助けてください。

  • Excel で特定の文字を取り出してその文字だけをコピーする方法

    VBAや関数に詳しくないので、というよりもExcelにあまり詳しくないので、とりあえずこうすればできるという方法を具体的に教えていただければと思います。 やりたいことは2つあります。内容はそれぞれこんな感じです。 (1) セルA1に”・・・・・・・○”  (・は任意の文字とします。)   セルA2に”・・・・・・・×”  (抽出したい文字は最後に来ます。) とあったとしたら セルB1に”○” セルB2に”×” というふうに特定の文字をコピーする。 それらの文字が含まれていなかったり、あってもそれが最後でなければ何もしません。 (2) (1)で作ったシートを他のシートにコピーしたとして、そのシートには列2に特定の文字○、×などが入っています(空欄の場合もあります。)。この中から列2の内容が×の行を削除します。 Officeについては詳しくありませんが C、C++やJavaなどは使っていたのでスクリプトについては読んでいるうちに慣れると思うのですが、肝心のExcelを使いこなしていないのでこれをマクロで保存した方がいいのか関数にしたほうがいいのかということもはっきりしていないレベルですのでその辺も交えて教えていただけるとありがたいです。 本来であれば自分である程度の勉強をしなければいけないのはわかっているのですが、急ぎということでよろしくお願いします。

専門家に質問してみよう