[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『文字が入力されたら ある一つの言葉に置き換えたい&色も変えたい』 (ゆき)
すみませんが 宜しくお願い致します m(__)m 収支表・経費表なのですが F列に3〜8種類位 の決まった言葉が入ったら Gには 雑費 と書かれる というようにしたいのですが
F3に 切手 と入力したら G3には 通信費 と入力され F3に 電話代 と入力しても G3には 通信費 と入力され F3に 携帯代金 と入力しても G3には 通信費 と入力され… というように あらかじめ Fに入力する 3〜8位 の言葉に対応させたいいのですが、 F列には 「品名とか内訳」とかを入れる欄になっていて、G列は「名目」となっています あらかじめ 「品名とか内訳」に 何種類かの言葉を入力しても G列の「名目」に変換される時には ”通信費” とかに 変換されるようにしたいのです。 それで、例えばですが、通信費ならば 大体 電話代・携帯代金・切手 なので、 あらかじめ 3種類の言葉を設定しておいて それを G列に通信費 と変換して…というように 出来るのでしょうか? しかし 3種類の言葉の時もありますし、8種類の時もあります。
このように 「名目」として、通信費とか雑費とか、消耗品とか、福利厚生費とかに、 EからG列に 変換して欲しいものが 40〜45種類位 あります こいうのは 出来るものでしょうか? そして おまけに G列に 雑費とか 通信費とかの言葉が変換されてきたら そのG列のセルの 色と文字の色も あらかじめ設定しておいたものに 変換できる… というように したいのですが どうでしょうか すみませんが 宜しくお願い致します
「品名と内訳」と「名目」を一覧表に作成しておけば、何種類あっても、、 VLOOKUP関数と、条件付き書式を使えばできると思います。。 自分でトライされるか、、または、ここにシート配列の図表を提示すればレスが付くと思います。。 (kei)
keiさん どうもありがとうございますm(__)m 言葉だけで 判りにくくてすみませんでしたm(__)m
F G 2 品目 名目 ________________ 3 電話代 通信費 4 切手 通信費 5 携帯代 通信費 6 手数料 雑費 7 振込料 雑費 8 代行料 雑費 9 アフラック 保険料 10 興亜損保 保険料 11 東京海上 保険料 12 アリコ 保険料 13 第一 保険料 14 ひまわり 保険料 15 A その他出費 16 B その他出費 17 C その他出費 18 D その他出費 19 E その他出費 20 F その他出費 ↓ 130行まで 続きます
こんな感じで G列に 40〜45種類位 の名目となります それで G列に 名目別にセルの色と文字の色も 変わるようにしたいのですが すみません 教えて頂けますでしょうか 何卒宜しくお願い致します m(__)m
https://www.excel.studio-kazu.jp/mag2/backnumber/mm20040921.html
http://kokoro.kir.jp/excel/vlookup-false.html
条件付き書式
http://kokoro.kir.jp/excel/conditional_form.html
ご参考まで
(こだぬき)
例えば、どこかのシートに 下記のように「品目」と「名目」の一覧表を作ってください。
A B 1 電話代 通信費 2 切手 通信費 3 携帯代 通信費 4 手数料 雑費 5 振込料 雑費 ・ ・ ・ ・ 200 図書購入 備品購入費
上記のように作ったら、この場合ですと A1:B200 に例えば「説明」と名前をつけます。 ここまでが、VLOOKUP関数の準備です。
G3=IF(F3<>"",VLOOKUP(F3,説明,2,0),"") この数式をずーっと下までコピペします。 F3から下方にデータを入力していくと、「名目」がG列に表示されます。
その「名目」別にセルや文字とかに色を付けるのは、エクセル2007以降であれば良いのですが、 それよりも古いバージョンであれば、条件付き書式は3種類までしかできません。。
古いバージョンで、色付けをどうしても・・・であれば、あとはマクロ処理かなぁ。。 (kei)
keiさんの 式を入れて どうにかできました。ありがとうございます。(^_^;) 名前を付ける という意味が判らず すみませんでした 長くなってしまいました(^_^;)
それと すみません A列(F列)に出てくる何種類かの言葉以外は全て B列には(G列には) 「その他出費」と出るように したいのですが 教えて下さいますでしょうか 宜しくお願い致します m(__)m それとエクセルは2003です。すみませんが宜しくお願い致しますm(__)m
VLOOKUP関数ができたようですね。。 やっぱり、G列には「セルの色」と「文字の色」を付けなきゃいけないのでしょうね。。
2003なので、マクロで作ってみました。
最初にしておくこと。。
[1]上記にあるような「一覧表」をSheet2のA1:B列に作成する(必ず 品目は A1から 名目は B1 から下方に開始する) [2]名目 B列 のセルの「文字色」や「背景色」や「罫線」を仕上げておく。。→名目をそのままマクロでコピペします。
<<マクロの張り付け方>>
[1]下記のコードをコピーして、エクセルの入力するシートの「シートタブ」を右クリックして→一番下の「コードの表示」をクリックします。 [2]VBEの画面に切り替わって、ワードみたいな広いコードウィンドウ(入力待ちカーソルがテカテカしているところ)に貼り付けてください。 [3]貼り付け終わったら、右上の「×」で閉じてOKです。
これで、そのシートのF列に「品目」が入力されると、G列に色のついた「名目」が張り付きます。
ココから ↓ Private Sub Worksheet_Change(ByVal Target As Range) Dim i As Integer, j As Integer, k As Integer
Application.EnableEvents = False If Not Intersect(Target, Range("F:F")) Is Nothing Then With Target If .Value = "" Then With .Offset(, 1) .Value = "" .Interior.ColorIndex = xlNone .Font.ColorIndex = 0 End With Application.EnableEvents = True Exit Sub Else k = WorksheetFunction.CountIf(Sheets("Sheet2").Range("A:A"), Target.Value) If k = 1 Then j = WorksheetFunction.Match(Target.Value, Sheets("Sheet2").Range("A:A"), 0) Sheets("Sheet2").Cells(j, 2).Copy Target.Offset(, 1) Else With .Offset(, 1) .Value = "その他出費" .Interior.ColorIndex = xlNone .Font.ColorIndex = 0 End With End If End If End With End If Application.EnableEvents = True End Sub ↑ ココまで (kei)
やってみましたが すみません 文字は変わりますが色とかが変わらなくて(^_^;) 申し訳ないです m(__)m ごめんなさい まず 一番最初に教えて頂いた 説明 を作ったシートの名前を「説明」という名前にしまして→ そのシート[説明」の B列の「名目」のB1から下に向けて 色と文字の色を 決めて入れまして→その「説明」という シートごと コピーして そして新しいシート名を「一覧表」 という名前を付けました。 名前の違う 内容の同じシートが2枚できました。それから 元のシートの「収支表」に戻って 教えて頂いたマクロの ココカラ ココマデ の場所を 貼り付けて、 「収支表」のシートに戻って、F列に文字を入れてみましたが 言葉は変わるのですが、色とかが変わらないです (^_^;) それと すみません シート「説明」の A列に入れた以外の言葉を シート「収支表」のF列 に打ったら 「その他出費」とならずに #N/A と変わります。
大変すみません 何が間違っているか教えて下さい お世話になりますが 宜しくお願い致しますm(__)m
こんばんは。横から失礼します。
>そして新しいシート名を「一覧表」 という名前を付けました。 keiさんのマクロでは、このシート名を「Sheet2」としています(3箇所)ので、合わせないといけませんね。 (シート名を直すか、マクロ内の「Sheet2」を直すか、のどちらか)
>「収支表」のシートに戻って、F列に文字を入れてみましたが 言葉は変わるのですが、色とかが変わらないです (^_^;) >それと すみません シート「説明」の A列に入れた以外の言葉を >シート「収支表」のF列 に打ったら 「その他出費」とならずに #N/A と変わります 数式が入っているから、言葉は変わるけど、マクロが動いてないので、色が変わらないのですね。 それと、マクロの中で、G列に直接セルをコピーしてくるので、マクロが動けば#N/Aはなくなります。 (数式自体が上書きされるので)
>名前の違う 内容の同じシートが2枚できました。それから 「説明」というシートは不要ですね。削除しちゃってください。
(コタ)
コタさん ありがとうございます (^_^) 言われるとおりに直しました。名前をsheet2 にしてから「説明」シートを削除し 数式の G3=IF(F3<>"",VLOOKUP(F3,説明,2,0),"") の 説明 という所を sheet2 に直しました。 でも色とかが すみません やはり変わらないです (-_-;) それと シート収支表のFに sheet2 のA列には ない言葉を 入れてみましたが すみません やはり G列には #N/A と出ます 何が私間違っていますでしょうか 大変お世話を おかけいたしてすみません m(__)m マクロを 貼り付けてから シート収支表に戻って その後に 何か一作業抜けていますでしょうか? 例えば 前教えて頂いたように AltとF8 を押す…とかいう作業か何か いりますでしょうか? 大変すみません 何卒 宜しくお願い致します m(__)m
以下のとおりになっているか、確認してみてください。
○【Sheet2】シート ・B列のほうに、パターンやフォント色を設定しておく。 [R/C] [A] [B] [1] 電話代 通信費 ←パターン:黄、フォント色:青 [2] 切手 通信費 ←パターン:赤、フォント色:緑 [3] 携帯代 通信費 ←パターン:青、フォント色:黄 [4] 手数料 雑費 ←などなど [5] 振込料 雑費 [6] 代行料 雑費
○【Sheet* (コード)】シートモジュール ・「収支表」シートのコードの表示で開く画面に、マクロを貼り付け
この2つができていれば、以下のように、F列を入力すると、G列に「Sheet2」から 該当するセルが貼り付けられます。
○【収支表】シート ※「_」セルは未入力または"" [R/C] [F] [G] [1] _ _ [2] _ _ [3] 切手 通信費 ←パターン:赤、フォント色:緑 [4] 携帯代 通信費 ←パターン:青、フォント色:黄 [5] _ _
> 数式の G3=IF(F3<>"",VLOOKUP(F3,説明,2,0),"") マクロでG列を貼り付けるので、数式や、「設定」という名前定義は必要ないです。
(コタ)
みなさんおはよーございます。 コタさん、フォローありがとうございます。m(__)m いつも助けてもらって、ありがと^^
ゆきさん、そのシートのG列に入力した関数は、今の段階では「意味の無い」ものです。。 要は、Sheet2のA1〜B列に「一覧表」が作成された状態で、 上記のマクロのコードが、そのシートのシートモジュールに貼り付けてあるか。だけです。。
<確認> [1]入力シートのシートタブを右クリック→コードの表示→コードが貼り付けてあるか? [2]Sheet2のシートのA1〜B列に「品目」「名目」の色の付けた一覧表があるか? (kei)
上の一番左にある エクセルのマークを右クリックして、コードの表示 というのを出して そこに貼り付けていたら 出来ませんでしたが <[1]入力シートのシートタブを右クリック→コードの表示→コードが貼り付けてあるか? で収支表シートの シートタブで右クリックして コードの表示をして そこに貼り付けましたら 色が変わりました しかし(^_^;) すみません(~_~;) F列に 関係ない言葉を 例えば リンゴとか打ってみたら G列に その他出費 と出る前に
実行時エラー interiorクラスのcolor Indexプロパティを設定できません と出てきて 終了 デバック ヘルプ と下に出て ヘルプを押すと マクロの式の所の interior color index=X INone という所が 黄色になっています
それでシート収支表に 戻ると その他出費 とG列には 変換されていますが 色とかは 変わらず そのままになっています シート2で その他出費 の色とかの設定をしていないからだと思いますが そのやり方が すみませんわかりません (^_^;)
A列には 出てこない言葉以外を B列に その他出費 と書いて セルの色とか文字の色とかを 設定させるのに どう打ったらいいでしょうか A列に 例えば「それ以外」 とかいう言葉を打って Bに「その他出費」と打って そのBの所の 色とか文字色を変えたら いいでしょうか? Aの方に 何と打ったらいいかなと 思いまして…すみません
それと すみません。もう一度最初から 打ってみようと 最初に戻り シート収支表 の方のF列に 電話代 と入れたら G列は 通信費と 代わり 色も変わったのですが、 Gの電話代 というのを書き間違えた と思って 消したら さっきと同じ 実行時エラーというのが 出ます。 そして 又もう一度最初から やってみたのですが 今度はエラーは出なかったですが 一度 Fに電話代 と打って Gが通信費と変わって 色も変わった後で F列の 電話代 というのを 消すと G列の 色のオレンジが 残ってしまいます よく 書き間違いをするので Fに一度書いた言葉を 消すと Gの色も元に戻るようにするには どうしたら いいでしょうか 大変にすみません お手数をおかけ致します 宜しくお願い致しますm(__)m
ゆきさん、こんにちわ。。
>上の一番左にある エクセルのマークを右クリックして、コードの表示 というのを出して そこに貼り付けていたら 出来ませんでしたが ここから、VBEに行く方法もあったのですね。^^;
もう一度上記の方法でVBEを開いて、そこにあるコードを全部消してください。(ワードと同じ要領です。)
そして、右上の「×」でウィンドウを閉じると、通常のワークシートに戻ってきますので、 「収支表シート」であることを確認してから、「下記のコードをコピーして」、シートタブを右クリック→「コードの表示」 そうすると、以前貼り付けたコードがありますので、それを全部選択して、「張り付け」を行ってください。。要は、下記のコードに差し替えるわけです。
以前のコードは、「その他出費」は何も書式を設定していませんでした。。 例の一覧表の A列 には何も記載しなくてもよいですが、B列の「その他出費」は、色付けなどを行ってください。
落ち着いて、確実にやってみて ^^ ↓ Private Sub Worksheet_Change(ByVal Target As Range) Dim i As Integer, j As Integer, k As Integer
Application.EnableEvents = False If Not Intersect(Target, Range("F:F")) Is Nothing Then With Target If .Value = "" Then With .Offset(, 1) .Value = "" .Interior.ColorIndex = xlNone .Font.ColorIndex = 0 End With Application.EnableEvents = True Exit Sub Else k = WorksheetFunction.CountIf(Sheets("Sheet2").Range("A:A"), Target.Value) If k = 1 Then j = WorksheetFunction.Match(Target.Value, Sheets("Sheet2").Range("A:A"), 0) Sheets("Sheet2").Cells(j, 2).Copy Target.Offset(, 1) Else j = WorksheetFunction.Match("その他出費", Sheets("Sheet2").Range("B:B"), 0) Sheets("Sheet2").Cells(j, 2).Copy Target.Offset(, 1) End If End If End With End If Application.EnableEvents = True End Sub ↑ (kei)
忘れてました。。 前述の作業が終了したら、一度エクセル(ファイルだけでなく)を終了させてください。 それから、エクセルを立ち上げるか、、ファイルから立ち上げてくださいね。。 それからは、通常の操作でOKだと思います。。 (kei)
keiさん お世話になり ありがとうございます。その他出費 の色が変わりました しかし(^_^;) すみません 一旦 電話代とかを F列に書いて G列が 変換され そして F列を 消すと デバックとかのエラーが出ます。 すみません F列の言葉を修正しようとすると 上でも出た デバックと書いた エラーが 出ます。 すみません (^_^;) どうしたら Fを修正した場合も Gが 消えて書き直しが出来るようになりますでしょうか すみません m(__)m 宜しくお願い致します m(__)m
>上の一番左にある エクセルのマークを右クリックして、コードの表示 というのを出して そこに貼り付けていたら 出来ませんでしたが
もう一度上記の方法でVBEを開いて、そこにあるコードを全部消してください。(ワードと同じ要領です。) 上記の消去を行いましたか? → シートではなく、ブックのモジュールにも張り付けられてますので。 そして、一度そのまま保存してから、エクセルごと終了させてから、また立ち上げてみて。。 こちらでは、正常に動くようですが・・; (kei)
すみません keiさん 左上のコードの表示 の所は白紙になっています それで 下の収支表シートを右クリックして 上のマクロのを貼り付けて それで電話代 とFに打って Gが変わって、それで 電話代を消すと そこで 実行時エラー 1004のが出てきます。 それと コードの表示をすると General の所は白紙ですが Workbook というのに 切り替えると private sub work book_open() end sub と書いてあるので それも消して 上書保存して エクセルを閉じて 又立ち上げて Fに入力して Gが変わっても Fを消すと やはり デバックのが出ます 一つのフォルダの中に ブックが11位ありますが それは関係ないですよね 何がおかしいのでしょうか 大変すみません 本当に申し訳ないです m(__)m
>一つのフォルダの中に ブックが11位ありますが それは関係ないですよね 関係ないです。。 何でかなぁ??
もう一度最初からやってみましょうか。。
今の状態から、上のメニューの「新規作成」をクリックして、新しいブックを作成します。 現在のシートをシートごとコピーして、新しいシートに貼り付ける。。 Sheet2には、例の一覧表を貼り付ける。 シートタブにシート名などを入力する。 さて、ここからです、、 [1]「収支表シート」のシートタブを右クリックして、この上の新しいコードを貼り付ける。 [2]VBEの画面を「×」で終わらせる。 どうでしょう?? (kei)
keiさん ありがとうございますm(__)m 新しくしたら 出来ました。 新規でワークシートを作って その一枚一枚の シートに 最初のシートから中身をコピーして作ったら出来ました しかし 新規のワークシートに 元のシートから シートごとコピーしていって作ったら 同じように エラーが出ました、シートごとコピーすると駄目みたいでした。 やはり こうなると最初に私が作ったものが 何かがおかしいのですね(^_^;) それでですが けっこう これでいきますと中身をコピーして作っていくと ページの設定とか 作っていた関数とかが 変わってしまって けっこう大変な作業になりそうなのですが やはり 私が最初に作ったものを 直すというのは 無理がありますでしょうか? すみません 作り直さずにする方法って やはり難しいでしょうか? 何卒宜しくお願い致します m(__)m
つまり、ファイルのバックアップをとっていなかったの? もし、バックアップがあれば、そのファイルに何か名前をつけ換えて、マクロの登録をすれば良いし、、
ダメなら、もう一度最初にトライしたファイルの「収支表シート」のシートタブを右クリックして、例のコードをすべて消去して、 >上の一番左にある エクセルのマークを右クリックして、コードの表示 というのを出して そこに貼り付けていたら 出来ませんでしたが もう一度ここを確認して、もしコードがあったら、消去する。 ここで、「おまじない」、、この状態で一度保存してエクセルごと終了してください。。 再度読み込んでから、先ほどの手順どおりマクロを貼り付けてください。。 うまくできると良いのですが・・; (kei)
keiさん ありがとうございます。バックアップで USBメモリーにとってあったのを デスクトップに保存してから 最初から やってみたのですが 色も文字も変わりますが やはり Fに打った言葉を消すと 実行時エラー1004と出てマクロの式の中の 中の一行が黄色くなっています という事は やはりバックアップしてあるものも おかしいという事は 最初から私の作ってあるものが 何かがおかしかった?という事ですよね という事は やはり新規から作り直していかないといけない という事ですよね? 本当にお世話になります。 すみませんm(__)m
何でか分かんない。。 まだG列にVLOOKUP関数が埋め込んであれば、念のために消去してみて。。 (kei)
またまたコタです。
>やはり Fに打った言葉を消すと 実行時エラー1004と出てマクロの式の中の >中の一行が黄色くなっています 黄色くなった行を、こちらに貼り付けてみてはどうでしょうか。
それと、マクロの有無を確認したいので、以下の作業をやってみてください。
(1) 「バックアップで USBメモリーにとってあったの」をどこかにコピー →以下、このブックを使用 (2) 使っていないワークシート(新しくワークシートの挿入をしても可)のシータブ右クリックで コード表示して、↓のマクロを貼り付け (3) ワークシートに戻って、Alt+F8で、「Sheet*.ModuleInfo」を実行 →ワークシートに何かが出力される (4) ワークシートに出力された部分を選択→Ctrl+Cでコピーして、こちらの掲示板にCtrl+V(貼り付け) ※何かまずそうなものが入っていたら、別の文字に置き換えてください。
↓ここから Public Sub ModuleInfo() Dim i As Long With ThisWorkbook.VBProject For i = 1 To .VBComponents.Count With .VBComponents(i) Cells(i, 1) = .Name Cells(i, 2) = ModuleType(.Type) With .CodeModule Cells(i, 3) = .CountOfLines Cells(i, 4) = .CountOfDeclarationLines End With End With Next i End With End Sub Private Function ModuleType(ByVal t As Integer) Dim s As String Select Case t Case 1: s = "StdModule " '標準モジュール Case 2: s = "ClassModule " 'クラスモジュール Case 3: s = "Microsoft Form " 'Formモジュール Case 11: s = "ActiveXDesigner " 'ActiveXデザイナ Case 100: s = "Document " 'Documentモジュール Case Else: s = "Unknown " End Select ModuleType = s End Function ↑ここまで
(コタ)
こんばんは
ちょっと混乱しているみたいなのでお邪魔しますね。
ゆきさん、 「最初に私が作ったもの」のコピーブックで試して下さい。 まず、Sheet2 に例の一覧表を貼り付けるのは同じです。 次に、A列には 出てこない言葉以外に対応するために、 A列に 例えば「それ以外」 とかいう言葉を打って Bに「その他出費」と打って、そのBの所の色とか文字色を変えて下さい。 次は、「収支表シート」のシートタブを右クリックして、下記コードを貼り付ける。
Private Sub Worksheet_Change(ByVal Target As Range) Dim j As Variant Dim r As Range Dim t As Range
Set t = Intersect(Target, Range("F:F")) If t Is Nothing Then Exit Sub Application.EnableEvents = False For Each r In t With r If .Value = "" Then With .Offset(, 1) .Value = "" .Interior.ColorIndex = xlNone .Font.ColorIndex = 0 End With Else j = Application.Match(.Value, Sheets("Sheet2").Range("A:A"), 0) If IsError(j) Then j = Application.Match("それ以外", Sheets("Sheet2").Range("A:A"), 0) End If Sheets("Sheet2").Cells(j, 2).Copy Target.Offset(, 1) End If End With Next Application.EnableEvents = True End Sub
上記コードを貼り付け終わった画面の上にある、「メニュー」の「挿入」から 「標準モジュール(M)」を実行して下記コードを貼り付けて下さい。
Sub jyunbbi() Application.EnableEvents = False With Worksheets("収支表").Range("G:G") .Value = .Value End With Application.EnableEvents = True End Sub
Sub jyunbbi()
Application.EnableEvents = False With Worksheets("収支表").Range("G:G") .Value = .Value End With Application.EnableEvents = True End Sub
Sub エラーで終了した時() Application.EnableEvents = True End Sub
収支表のシート名が違ってたら修正して下さい。
ここまで出来たら、Sub jyunbbi 〜 End Sub の中をクリックしてから F5 キー を押して「jyunbi」マクロを実行して下さい。
これで設定は終わりましたので、収支表シートの F列にデータを入力してみて下さい。 入力ミスした場合は、F列のデータをクリアすればいいです。
(ウッシ)
コタさん★貼り付けてみます。これは keiさんに教えて頂いたsheet2 のはまだ作っていないやつです
ThisWorkbook Document 0 0 Sheet1 Document 28 0 Sheet2 Document 0 0 Sheet3 Document 0 0 Sheet4 Document 0 0 Sheet5 Document 0 0 Sheet6 Document 0 0 Sheet7 Document 0 0 Sheet8 Document 0 0 Sheet9 Document 0 0 Sheet10 Document 0 0 Sheet11 Document 0 0 Sheet12 Document 0 0 Sheet13 Document 0 0 Sheet14 Document 0 0 Sheet15 Document 0 0 Sheet16 Document 0 0 Sheet17 Document 0 0 Sheet18 Document 0 0 Sheet19 Document 0 0 Sheet20 Document 0 0 Sheet21 Document 0 0 Sheet22 Document 0 0 Sheet23 Document 0 0 Sheet24 Document 0 0 Sheet25 Document 0 0 Sheet26 Document 0 0 Sheet27 Document 0 0
それと >中の一行が黄色くなっています は .Interior.ColorIndex = xlNone です いつもお世話になります ありがとうございます m(__)m
ウッシさん ややこしくなって すみませんm(__)m 上のをやってみますね 又連絡します ありがとうございます m(__)m
> コタさん★貼り付けてみます。これは keiさんに教えて頂いたsheet2 のはまだ作っていないやつです なるほど。他にはマクロはありませんね。
>それと >中の一行が黄色くなっていますは .Interior.ColorIndex = xlNone です うーん、そこで失敗しますか。なぜだろう。。
試しに、keiさんのコードに、以下の「追加」の行を加えて、何がメッセージされるか教えてください。 (先ほど私のマクロを試してもらったブックに、一覧表の作成と、↓のマクロ貼り付けで試してみてください)
Private Sub Worksheet_Change(ByVal Target As Range) Dim i As Integer, j As Integer, k As Integer
Application.EnableEvents = False If Not Intersect(Target, Range("F:F")) Is Nothing Then With Target If .Value = "" Then With .Offset(, 1) .Value = "" MsgBox .Item(1).Interior.ColorIndex '←追加 .Interior.ColorIndex = xlNone .Font.ColorIndex = 0 End With Application.EnableEvents = True Exit Sub Else k = WorksheetFunction.CountIf(Sheets("Sheet2").Range("A:A"), Target.Value) If k = 1 Then j = WorksheetFunction.Match(Target.Value, Sheets("Sheet2").Range("A:A"), 0) Sheets("Sheet2").Cells(j, 2).Copy Target.Offset(, 1) Else j = WorksheetFunction.Match("その他出費", Sheets("Sheet2").Range("B:B"), 0) Sheets("Sheet2").Cells(j, 2).Copy Target.Offset(, 1) End If End If End With End If Application.EnableEvents = True End Sub
(コタ)
さっきのコタさんのに、(上でさっきの何が出るかチェックした シート1は そのまま残したままやりました) sheet2に色の一覧表を作り シート収支表にkeiさんのマクロのを貼り付けて すぐその下に 上のコタさんのマクロのを追加で貼り付けてから バツで閉じて 収支表シートに戻り F列に 文字を打ちましたら コンパイルエラー 名前が適切ではありません workseet_change と出て 下に OKとヘルプ と出ます。それでヘルプを押してみたら この機能は現在インストールされていません インストールしますか と出ましたので そのまま閉じました すみません 宜しくお願い致します m(__)m それと ウッシさんの やってみたのですが 同じく 名前が適切ではありません jyunbbi とエラーが出て OK とヘルプ と出て ヘルプを押したら 同じく この機能はインストールされていません とのエラーが出ました コタさん 両方 同じエラーが出ました。コタさんが上で書かれた <何がメッセージされるか教えてください というのは この方法で あっていましたでしょうか すみません 何卒宜しくお願い致します m(__)m
.Interior.ColorIndex = xlNone でエラーというのは、そのシート、保護してませんか?
(ramrun)してなかったら無視してくらはい
見てみたら 保護になっています これが原因でしょうか (^_^;)
(ramrun)
ramrunさん 何と… 出来ました〜〜〜〜〜 m(__)m ありがとうございます!! keiさん こだぬきさん ウッシさん 大変にご迷惑をかけて すみませんでした m(__)m また コタさんには いつもいつも お世話になって 今回も ご面倒をかけて 皆様に 何と お詫びをいっていいのか 本当に恥ずかしいです。(-_-;)
保護になっていたから できなかったんですねー (-_-;) 本当に馬鹿ですみません。
綺麗に 色も言葉も変わりました。 本当にすみませんでした。 私事ですが今日は 私の誕生日で 皆様に教えて頂いた事が 一番のプレゼントになりまして、どうも ありがとうございました m(__)m
皆様方に 本当に 何度も 何度も 教えて頂いて ありがとうございました m(__)m 呆れ果てて おられると思いますが ごめんなさい これからも すみません 又 どうか 宜しくお願い致します m(__)m
keiさん こだぬきさん ウッシさん コタさん ramrunさん どうも ありがとうございました m(__)m
正直チラッと頭をかすめたのですが、、、 コタさん、ウッシさん、ramrunさん、ア・リ・ガ・ト!! またまた助けていただきました ^^; (kei)
(まだ見てるかどうか分かりませんが)とりあえず原因が分かってよかったですね。
> 見てみたら 保護になっています .Interior.ColorIndex = xlNone の上の .Value = "" を通過してるので、この可能性は捨ててましたが、 セルのロックは外してあったのですね。
そういえば前にも同じような状況に出会ってました。 [[20100719154733]] 『会社別に抽出したいのですが』(素人) まだ精進が足りない。。
シート保護はできれば外さないほうがいいと思いますので、例によってマクロの前後で解除・再保護を してみました(keiさん、ちょっとだけ加工させていただきました)。
シート収支表に「keiさんのマクロのを貼り付け」せずに、↓のコードだけを貼り付けてみてください。
Private Sub Worksheet_Change(ByVal Target As Range) Dim i As Integer, j As Integer, k As Integer '8/29 7:34版 If Not Intersect(Target, Range("F:F")) Is Nothing Then Application.EnableEvents = False Me.Unprotect With Target If .Value = "" Then With .Offset(, 1) .Value = "" .Interior.ColorIndex = xlNone .Font.ColorIndex = 0 End With Else k = WorksheetFunction.CountIf(Sheets("Sheet2").Range("A:A"), Target.Value) If k = 1 Then j = WorksheetFunction.Match(Target.Value, Sheets("Sheet2").Range("A:A"), 0) Sheets("Sheet2").Cells(j, 2).Copy Target.Offset(, 1) Else j = WorksheetFunction.Match("その他出費", Sheets("Sheet2").Range("B:B"), 0) Sheets("Sheet2").Cells(j, 2).Copy Target.Offset(, 1) End If End If End With Me.Protect Application.EnableEvents = True End If End Sub
(コタ)
コタさん!!! どうも ありがとうございます★ 出来ました!! 前 コタさんに教えて頂いた方法で ロックをかけたいセル だけに 保護をする方法で 保護をかけていたのです m(__)m
上のマクロのを入力し終わりまして ロックをかけたいセルを かまってみたら 保護になっていました (*^_^*) いつもいつも ありがとうございます (*^_^*)
でも 本当に感動しました 皆様の力というか 何と言っていいか判りませんが 凄い人達の知識の集結 と言っていいのか 何か とにかく凄いなーーと 感動します びっくりです 又 何卒宜しくお願い致します m(__)m keiさん こだぬきさん ウッシさん コタさん ramrunさん 感謝いたします どうも ありがとうございましたm(__)m m(__)m m(__)m
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.