• ベストアンサー

エクセルの関数、マクロで

A1からA50までに任意の英単語が入力されています。 英単語の先頭文字が"abcdefg"のどれかで始まる場合は、先頭文字の前にスペースを一つ挿入する。先頭文字が"hijklmn"のどれかで始まる場合は、先頭文字の前にスペースを二つ挿入する。先頭文字が"opqrstu"のどれかで始まる場合は、先頭文字の前にスペースを三つ挿入する。 以下の状態で実行すると ↓ dog teacher cat school mother 以下のようになります ↓ _dog ___teacher _cat ___school __mother このようなことができる、関数orマクロを教えて頂きたいのですが。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんばんは。 一応、以下は、大文字小文字は無視してあります。 関数ですと、 =REPT(" ",LOOKUP(CODE(LOWER(A1)),{0,0;97,1;104,2;111,3;118,0}))&A1 マクロですと、 Sub AddSpaceOntoWords() If TypeName(Selection) <> "Range" Then Exit Sub For Each c In Selection 'マウスで選択 If VarType(c) = vbString Then  Select Case StrConv(Left$(c.Value, 1), vbLowerCase)  Case "a" To "g"   c.Value = String(1, Chr(32)) & c.Value  Case "h" To "n"   c.Value = String(2, Chr(32)) & c.Value  Case "o" To "u"   c.Value = String(3, Chr(32)) & c.Value  End Select End If Next End Sub

pierika
質問者

お礼

ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.2

 ではエクセルのそのブックを開いて、Alt+F11を押しましょう。A1~A50までに英単語が入っているシートをVBAで開き、次のように打ち込む。 Public Function change() __Dim i As Integer __Dim spnum As Integer __Dim ra As Range __For i = 1 To 50 Step 1 ____Set ra = Cells(i, 1) ____Select Case LCase$(Left$(ra.Value, 1)) ____Case "a", "b", "c" '以下略 ______spnum = 1 ____Case "h", "i" '以下略 ______spnum = 2 ____Case "o", "p" '以下略 ______spnum = 3 ____End Select ____ra.Value = Space$(spnum) & ra.Value __Next End Function 後は書いたこのテキストのどこかをクリックしてF5を押せば実行できるはず。ざっと書いただけでテストしていないのでよろしく。

pierika
質問者

お礼

ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • EXCELで複数条件に当てはまるものの和を求めたいのですが

    下記のように、A列が同じ場合かつ、B列の「1番目の文字」が同一の場合、C列の数字を足す、という事をやりたいのですが、 どういった関数を組み合わせればよいのか、また、どういったマクロを組めばよいのか、分からなかったので、質問させて頂きます。 例えば「あ」の場合、3行ある中の2行が「A」で始まっているので、足して「5」。 「H」で始まるものは1行だけなので、そのまま「2」。 「え」の場合は、5行ある中の3行が「A」で始まっているので、足して「8」。 2行が「H」で始まっているので、足して「11」。 という回答を出せるようにしたいのです。 A列の種類が100以上あったりしても問題ないやり方はありますでしょか? A列   B列  C列 あ  ABCDEFG  1 あ  ABCDOPQ  4 あ  HIJKLMN  2 い  HIJKLMN  1 い  HIJKRST  1 う  ABCDEFG  5 え  ABCDEFG  3 え  ABCDEFG  4 え  ABCDOPQ  1 え  HIJKLMN  6 え  HIJKRST  5 A列が同じかつ、B列の頭文字が同じなら、Cを足す。 という条件文を書けばよいと思っているのですが、それの書き方が分かりません…。 当方、VBや関数にそれほど強くなく、 皆様のアドバイスを頂ければと思い投稿させて頂きます。

  • Excelのマクロ教えてください

    初めまして。 以下のようなマクロが欲しいのですが、知識不足のため、どうしたらよのかわからず困っております。 ウェブで色々と調べてやってみましたが、期待どおりの結果を得られませんでした。 どなたかお教えいただけたら幸いです。 行いたいのは、例えば、   セルA1に文字列『1. abc』が入っているとき、先頭の番号『1』の部分だけ取り出し   (または . 以下を除いて)、セルA1の内容を数字型の『1』に書き換える という動作です。 複数のセルをドラッグして選択し、マクロのショートカットで一発変換 できたら…と思っております。 変換したい部分のセルの内容はすべて、『1. abc』のように、文字列で 「1~7の数字」、「半角の.」、「半角スペース」、「英単語」 の順になっています。 簡単なことなのかもしれませんが、自分にはさっぱりでした… どなたか回答をお願いいたします。m(_ _)m

  • エクセルのデータ処理

    A列に単語が100ほどあります。 この中から特定の字(aとか bを含む単語をB列に選びだし、C列にその字の前からの位置を出したいのです。2字の場合は先頭でよい。 VBAで組むことはできますか、教えてください。 よろしくお願いします。 A     B C aを含む語 前からの位置 dog    cat      2 cat      map      2 desk      table     2 map      miracle    4 table      weather    3 miracle      calendar    2 (2と7) weather cloth calendar

  • エクセル2007にて、先頭が大文字の英単語のみを削除したい。

    エクセル2007にて、先頭が大文字の英単語のみを削除したい。  ある文章中に含まれる英単語の出現頻度のリストがあります。その英単語のうち、単語の先頭1文字が大文字で表記された英単語のみを削除したいですが、何か効率的な方法はないでしょうか。たとえば、GlanとかRobertというような単語を削除したいと考えています。よろしくお願いします。

  • Word2007 先頭の小文字の波線をなしにする方法

    Word2007を使っています。 オートコンプリートの設定で文頭、先頭の文字を小文字に出来ることは 分かったのですが、そうすると波線が出てきてしまいます。 スペルチャックはしたいので、訂正必要な箇所に波線が出てくれる機能は残しつつ、 先頭の小文字には波線が出ないような設定は出来るのでしょうか? たとえば、 cat dog table red pink というように単語だけを並べたいのですが・・。 よろしくお願いします。

  • outlook の使い方で質問です。

    メールソフトとしてoutlook 2002 (outlook expressではありません。) を使っている者です。英単語を打ち終わってスペースキーを押すと、その途端に、英単語の先頭の文字が勝手に小文字から大文字に変わってしまいます。これを防ぐにはどうすればよいのでしょうか。

  • エクセルのマクロ

    B1に文字が入力されています。 先頭から一文字ずつ、A列にコピーします。 スペースの場合はスペースをコピーします。 例 B1→ 1Dk4あ $ A1→ 1 A2→ D A3→ k A4→ 4 A5→ あ A6→  A7→ $ 以上の処理を行うマクロを教えて頂きたいのですが。

  • 【コマンドプロンプト】テキストファイル内の文字列置換

    こんにちは。 コマンドプロンプトのバッチファイルでテキストファイル内の文字列の置換を行いたいと考えております。 例えば以下のような内容があった場合、 --開始-- ABCDEFG1111 ABCDEFG ABCDEFG1111 HIJKLMN --終了-- バッチファイル処理結果として 1111 ABCDEFG 1111 HIJKLMN という結果を別ファイルに出力したいのです。 制限としては、sed,awkなどのwindows上で稼動するツールがあるようですが それらは使用できません。 どなたかご存知の方教えていただけないでしょうか よろしくお願い致します。

  • 英単語の覚え方・・・

    こんにちは。中2のcat-and-dogです! えっと・・・私は英語が苦手なんです。 何が苦手かというと *英単語が覚えられない *文の作り方・訳し方がわからない というものなんです。 英単語は、どんなことをしたら覚えやすいでしょうか? 文法なども、コツとかポイントとかあれば教えてください。 お願いします!!

  • Excel テキストボックス内の改行

    テキストボックス内に文字を書いていて気になったのですが、テキストボックスの折り返し地点(右端)近くで半角英単語を入力すると先頭の文字ごと改行されてしまいます。 例えばSummerと入力する場合、半角英数3文字分のスペースが残っていてもSumまで入って改行されるのではなくSummerごと改行されてしまいます。全角で入力する場合はこのような事はありませんでした。 これは何故でしょうか?

専門家に質問してみよう