• ベストアンサー

超初心者 マクロの作り方教えてください!

入門レベルのくせにいきなり難しいことをするな、とお叱りを受けそうですが、下記のような操作を行う場合のマクロの作り方(コード)を教えてください。 sheet1 E列の全ての☆を★に変換 sheet1 E列の全ての★を※に変換 sheet1 E列の全ての※をクリア 単純なクリアのマクロの作り方はわかったのですが、条件付の変換やクリアの作り方がわかりません。無謀な質問かもしれませんが、よろしくお願いします。m(__)m

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

  • ベストアンサー
  • GETSTREET
  • ベストアンサー率18% (14/74)
回答No.2

Sub 変換() Dim 行 行 = 1 Cells(1, 5).Select 下段 = Cells(65536, 5).End(xlUp).Row Cells(行, 5).Select Do If 行 > 下段 Then Exit Sub End If If Cells(行, 5).Value = "☆" Then Cells(行, 5).Value = "★" End If 行 = 行 + 1 Cells(行, 5).Select Loop End Sub 上記は☆なら★へという命令です。あと応用してください。

kaerururun
質問者

お礼

ありがとうございます。 コードって英語ばっかりなんだと思ってたら 『行』なんて漢字をいれてもいいんですね。 (↑ド素人な質問でしょうか(^_^;)) GETSTREETさんのコードをありがたく使用させていただき、応用も利かせて、三つの動作を合わせてできるようなマクロを作ることができました。 ありがとうございます。

その他の回答 (1)

  • timber
  • ベストアンサー率29% (218/739)
回答No.1

Excel2000なら下記でできます。 Sub Macro1() Columns("E:E").Select Selection.Replace What:="☆", Replacement:="★", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False Selection.Replace What:="★", Replacement:="※", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False Selection.Replace What:="※", Replacement:="", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False End Sub Excelにはキーボードマクロという機能があります。 「ツール」-「マクロ」-「新しいマクロの記録」とすると、 マクロの記録というウィンドウがでるので、そのまま「OK」をクリック。(マクロ名は覚えておいてください) すると記録終了の四角のボタンと相対参照のアイコンだけの小さなウィンドウが表示されます。 この状態で行われた作業はすべてマクロに記録されます。 最後にマクロの終了ボタンをおすと、マクロが作成されますので 「ツール」-「マクロ」-「Visual Vasic Editor」でエディタを起動して作成されたマクロを確認してください。 この機能を使えばこの操作をマクロで表現するにはという質問はする必要がなくなります。

kaerururun
質問者

お礼

ありがとうございます。 Excel2000なので、そのままはっつけて試したのですが、うまくいきませんでした。というか、マクロを実行すると、記号が全部消えちゃいました。(?_?) 結局#2の方のコードをはっつけて成功しましたが、大変参考になりました。ありがとうございます。

関連するQ&A

  • マクロ初心者です。教えてください。

    エクセルでマクロを使って、最初に開いたシートから 希望のシートへ移動できるようにしました。 それを一度エクセルを閉じ、再度作業をしようと、 開いて作成したマクロを使おうとしたところ、 以下のメッセージが出て先へ進めません。 "このブックにあるマクロは、セキュリティレベルが高に設定されており、 デジタル署名されていないかまたは安全なものとして確認されていないため利用できません。 マクロを実行するには、署名するか、またはセキュリティレベルを変更する必要があります。 詳細については、ヘルプを参照してください。" ヘルプを見たのですが、チンプンカンプンで良くわかりません。 ツール→マクロ→セキュリティレベルで低に設定したのですが、 同じメッセージが出てきます。 後、ツール→マクロ→(タブ)信頼のおける発行元で 一番下に、ウィルス検出プログラムがインストールされていません。 と、出ています。 このプログラムは、どこから入手できるのでしょうか? 長くなってしまいましたが、 最終的にマクロで簡単に操作できるようにしたいのです。 OSはXP Home Edition、Excel2002を使っています。 識者の方、よろしくお願いします。

  • 【マクロ】初心者です。色々教えていただきたいことがありますのでご教授く

    【マクロ】初心者です。色々教えていただきたいことがありますのでご教授ください。 やりたいことは下記になります。 元データ A B C 1 2 3 4 5 6 新データ D E F 3 1 2 3 1 2 6 4 5 6 4 5 かなり簡略化で書いていますがやりたいことを記述していきます。 (1)マクロの記述しているブックのシート1にボタンを作成する。 ボタンから別のブックの元データ(CSVファイル)を選択。 元データのブックのシート1をマクロブックのシート2にコピーします。 コピーデータを加工、修正していきます。 (2)次に列のデータを入れ替えます。 これは法則がないので一行目の行をみて判断します。 (ex.C行の列ならD行に挿入する) (3)列を入れ替えた後、 3 1 2 6 4 5 になっていますがこれを 3 1 2 3 1 2 6 4 5 6 4 5 というふうに一行を二行にしていきます。 (4)最後にorder byします。 1、3、2列目の順にorder byします。 以上がやりたいことになります。 特に(1)がよくわからずボタンを使用時に 別ブックのデータをコピー、貼り付けるのは どうしたらいいのでしょうか? どなたかご教授ください。 よろしくお願いします。

  • マクロ初心者です

    マクロ初心者です 同じSheet内で範囲印刷を設定してある場合で、 A1に1のデータが入力されている場合範囲印刷(セル)の1ページだけ印刷し、 A2に1が入力されている場合2ページ目を印刷するように、 A列のデータ入力状況で範囲印刷のページを操作するマクロを教えてください。

  • エクセルのマクロ

    派遣切り後、事務職の就職がようやく見つかりました。 仕事の効率を少しでも上げて、より多くの業務処理をしたいので下記のマクロを作成したいと考えています。 1ヶ月前に書籍を購入して独自でできるか試したのですがダイレクトな情報が見つからず、基礎の部分だけはできたところです。 恐縮なのですがもし、できる方がいましたらぜひ教えて頂けませんでしょうか。 下記のようにSheet1のA列の数字を1つずつ検索して、sheet2にその数字があれば、sheet2のそのセル赤くする。 全部あればすべてのセルが赤くなり、無いところがあれば白いままというマクロです。何卒宜しくお願い致します。 ●sheet1のA列に下記のような数字が羅列(200行程)しています。 238062 238075 238096 238210 91518 238230 ●sheet2のA列に下記のような数字が羅列しています。 91518 238062 238075 238096 238210 238230

  • エクセルマクロでVLOOKUPのよう列を貼る

    初めましてよろしくお願いします。 シート2に       A     B     ・・・・・・・・・   Z 1   900     5               5 ・   903     40              60 ・    ・       ・               ・ 300 220     1     ・・・        100 301 210     10    ・・・        1000   302 200     15    ・・・         20 ・ ・ ・ が有ります。シート1のE10に210と入力されている場合、マクロを実行するとA列を検索し、シート2のA301の値と一致する301行をシート1のE11から列に変換しコピーされるようにしたいと思います。 シート1結果    A     B     C     D     E 1 2 ・ ・ 10                        210 11                         10 ・                           ・ ・                           ・ 35                        1000  解る方、よろしくお願いします。

  • マクロ・VBA初心者です。

    マクロ・VBAについて下記のような処理を簡素化できるかどうかお伺いさせて頂きたいです。 Excelシート前提条件 定期的に3社から入金(同じタイミングで受けております)を受けており、その入金を管理しているシートとなります。 A列には第何回目の入金か、B列には入金日を、C,D,E列には3社ごとの入金額が他のシートからとんでくるようになっており、F列には3社からの入金額をsum(C○:E○)で計算しております。 ※A2には「第一回目」、A3には「第二回目」のように入力されています。 ※○には、最新回文の行番号が入力されています。 このような設定とはなっていますが、新たに入金を受けると、前回分の1つ下の行に、前回分の数式をコピペし、また前回分のは前回分の行に値貼り貼り付けをしなおし、数式ではなく手打ちの入力と同じ形にしております。 つまり、数式が入力されているのは最新回の行のみで、過年度分は全て値貼りされ直されている状況です。 説明がへたっぴでごめんなさい( i _ i ) 前提条件は上記のようになっておりますが、 (1)最新回の行に、1つ上の行の数式をコピペする (2)コピペ後、前回分の行に前回分のを値貼りしなおす この(1)、(2)の動作をマクロ・VBAでできますでしょうか。 マクロ・VBAは初心者であるためなかなかうまくいかずに困っております。 ご指導のほど、宜しくお願い致します。

  • マクロの作業中のブレを無くしたい。

    マクロの作業中のブレを無くしたい。 勤怠表時間を記入する部分だけけす。 マクロを自動登録したのですが、 Application.ScreenUpdating = False を何処に記入すればよいか分かりません、 あと出来れば簡素な、マクロにかきかえたいのですが、 Sub 全時間クリアー() ' 全時間クリアー Macro ' 明細書・週払い・入力時間を全シート消す 自動で入れたマクロの式を張り付ける事が、できませんでした。(文字数オーバー) 消したい セルは、C14 D14 E14 E12   C16:E46なのですが、 Sheetは、54枚有りまして全て同じフォーマットです。シート名は、Sheet1~54まで、順番です。 こんな情報では、書くのは、無理でしょうか、

  • マクロを書き変えたいのですが、

    マクロを書き変えたいのですが、 現在使用してる 下記のマクロがあるのですが、 このマクロに Sheet1~Sheet18までの セル E12・E14・F14データーを消す式を足したいのですが、 どのように書いたらよいでしょうか? Sub 打ち出しデーター削除() ' ' 打ち出しデーター削除 Macro ' 打ち出しシートの時間・判定を クリアーにする。 ' ' Sheets("打 ち 込  用 ").Select Application.ScreenUpdating = False Selection.SpecialCells(xlCellTypeConstants, 1).Select Selection.ClearContents Sheets("★スタッフ一覧").Select Range("A1").Select End Sub あと シート数を指定しない場合も知りたいのです。 どなたか 力を貸してください。

  • エクセルのマクロについて

    エクセルでマクロを組んでいますが、ひとつだけ再現できず困っています。 A1からE100までの表で、A列からD列までの数値をE列で○と×で判定します。 この時、E列が○の場合にA,B,D列のデータをクリアしたいのです。 マクロのコードがわかれば助かります。よろしくお願いします。

  • Excel 2007 マクロ 表の集計について

    Excel 2007 マクロ 表の集計について 2つのシート(Sheet1とSheet2)の情報を集計して Sheet3に反映するマクロを考えています。 (1)Sheet1のC列、D列、E列とSheet2のC列が空欄の場合は  Sheet3に反映しません。 (2)Sheet1のC列、D列、E列とSheet2のC列のいずれかに数値が  入っている場合にはSheet3に行を反映します。  ※Sheet3に反映する際に、Sheet1とSheet2のキー(A列)は  反映しません。  各Sheetの表は画像を添付します。  どのようなマクロを作成すればよろしいでしょうか。  マクロの超初心者です。  マクロのサンプルをご紹介頂けますでしょうか。