advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 2818 for 入力規則 (0.005 sec.)
[[20090306121020]]
#score: 4284
@digest: ef889d783356e762201d56d43bbbe044
@id: 42370
@mdate: 2009-03-12T05:20:12Z
@size: 14118
@type: text/plain
#keywords: 品ブ (55147), seet (33872), 雑貨 (31805), 映シ (30804), 入形 (25864), 文具 (13857), 料品 (13259), 力シ (7441), 力") (6676), sheets (6127), value (6036), seet2 (5904), 食品 (4992), all (4665), 形態 (4384), ー" (4346), range (4270), リセ (3876), cells (3622), 引先 (3586), 取引 (3059), 反映 (2770), ブラ (2709), 65536 (2688), のse (2630), 仕入 (2615), ・? (2306), ・・ (2302), ラン (2210), 入力 (2159), 商品 (1981), シー (1593)
『マクロの応用?』(mako)
現在、マクロを使用し、入力シートと反映シートを作成しています。 入力シートには登録というボタンを作成し、反映シートにいくようにしています。 -------------------------- 入力シート -------------------------- 1 商品ブランド 2 担当者 3 その他 登録 -------------------------- 1の商品ブランドには入力規制をかけており、 文具、雑貨、衣料品、食品を選択するようになっています。 この四項目を一つずつのシートに分けたいです。 例えば1で文具を選択したら文具という名前のシートに反映させたいのです。 雑貨を選択したら雑貨シートに反映させる、というようなことはできるでしょうか? 1で選択し、その他の項目を入力してから登録ボタンを押し、 それぞれの商品ブランドのシートに入力したデータがとぶようにしたいです。 方法はありますでしょうか・・? ---- 入力規制→入力規則を設定しているセルがA1として WorkSheets(Range("A1").Value ). で雑貨を選択したら雑貨シートの操作はできますが。 ---- ごめんなさい・・。 どこに>WorkSheets(Range("A1").Value ).を 入力したらよいのでしょうか・・? 本当に素人で申し訳ないです・・。 (mako) ---- >入力シートには登録というボタンを作成し、反映シートにいくようにしています。 このコードを載せてみられるのがよいでしょう。 ■▲(HANA)■▲ ---- 入力シートと反映シートのレイアウト不明のため詳しくは書けませんが 仮に入力シートのA1に入力規則が設定してあり雑貨が選択されていたとき 入力シートのA1を雑貨シートのA1にコピペするコードは、 Worksheets("入力").Range("A1").Copy Worksheets(Range("A1").Value).Range("A1") 多分反映シートにDATAを「蓄積したい」だと思うので、他にもOffsetプロパティ,Endプロパティ等使用すると思いますが・・・。 ---- 説明が下手で申し訳ありません。 シートのレイアウトは @入力シート(Seet1)としているものが下記のようになります。 ------------------- A ------------------- 1 商品ブランド▼ →入力規制で項目を選択(文具、雑貨、衣料品、食品) 2 担当者 3 注文日 4 取引先 5 商品番号 6 取引先番号 __ |登録| —— -------------------------- (seet1) A(seet1)で入力した内容が隣のseet2に反映されます。 A B C D E F 商品ブランド 担当者 注文日 取引先 商品番号 取引先番号 ---------------------------------------------------------------------------- 雑貨 ○○○ 2009/3/3 ABC 123-456 11111111 ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ----------------------------------------------------------------------------- (seet2) B今回、やりたいことはseet1のA1の商品ブランドの項目4つのシートを Seet2のようにつくりたいです。 A1の商品ブランドで雑貨を選択し、担当者、注文日、・・・・取引先番号を全て入力し、 登録ボタンを押します。 C商品ブランドで雑貨を選択したので seet2と同じレイアウトの雑貨というseetに内容を反映させたい。 雑貨seetのとなりには文具、衣料品、食品とseetを全部で四つ作成し、 A1で選択した項目のseetに入力したものが反映するようにしたいです。 seetを四つに分けないでSeet2だけの場合はできるのですが、 そうすると四項目全て同じseetになってしまうので ひとつの入力seetで四つのseetに反映させるようにしたいんです。 上記のようなことは不可能でしょうか・・? seetを四つに分けたかったら入力seetを四つ作成するべきでしょうか・・? 長々と申し訳ありません。 ---- 私は >入力シートには登録というボタンを作成し、反映シートにいくようにしています。 このコードを載せてみられるのがよいでしょう。 と書きましたが。 (HANA) ---- (HANA)さん何度もごめんなさい。 コードは入力という名前のseetを右クリックしてコードの表示で やっているのですが、 今回の場合、ひとつのseetからいくつかへのseetに反映させるので どの部分にどういったコードを記載すればいいのでしょうか・・。 今入力seetには下記のようなコードを入力しています。 反映させるseetはALLとういseet名です。 --------------------------------------------------------------------------------------- Private Sub CommandButton1_Click() With Sheets("入力") If .Range("F8") = "" Then MsgBox "商品ブランドが選択されていません", , "エラー" .Range("F8").Select Exit Sub End If Dim i As Long i = Sheets("ALL").Cells(65536, 1).End(xlUp).Row + 1 Sheets("ALL").Cells(i, 1).Value = .Range("K2").Value Sheets("ALL").Cells(i, 2).Value = .Range("F6").Value Sheets("ALL").Cells(i, 3).Value = .Range("F8").Value Sheets("ALL").Cells(i, 4).Value = .Range("F10").Value Sheets("ALL").Cells(i, 5).Value = _ .Range("F12").Value & "-" & .Range("H12").Value & "-" & .Range("J12").Value Sheets("ALL").Cells(i, 6).Value = .Range("F14").Value Sheets("ALL").Cells(i, 7).Value = .Range("F16").Value Sheets("ALL").Cells(i, 8).Value = .Range("F18").Value Sheets("ALL").Cells(i, 9).Value = .Range("F20").Value Sheets("ALL").Cells(i, 10).Value = .Range("F22").Value Sheets("ALL").Cells(i, 11).Value = .Range("F24").Value Sheets("ALL").Cells(i, 12).Value = .Range("F26").Value Sheets("ALL").Cells(i, 13).Value = .Range("F28").Value .Range("F6,F8,F10,F12,H12,J12,F14,F16,F18,F20,F22,F24,F26") = "" End With End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) End Sub --------------------------------------------------------------------------------------- 宜しくお願いします。 ---- 現在のコードは 「ALLとういseet名」のシートにデータを入れますね。 これが 「A1で選んだseet名」のシートに入れば良いですね。 コード内の Sheets("ALL") を、ALL ではなく Sheets( A1で選んだsheet名 ) にしたいのですから 該当個所(14箇所)を Sheets(.Range("A1").Value) と置き換えれば良さそうに思います。 上手く行きそうですかね。 (HANA) ---- (HANA)さんありがとうございます! ただ登録ボタンを押して入力しようとすると 【このコマンドを使用するとデバッグは中断します】という エラーがでてしまいま す。。 また下記の一行目がなぜか黄色の帯状ででてきてしまいます。。 ----------------------------------------------------------------- Private Sub CommandButton1_Click()→黄色の帯状ででてくる。 With Sheets("入力") If .Range("F8") = "" Then MsgBox "仕入形態が入力されていません。", , "エラー" .Range("F8").Select Exit Sub End If Dim i As Long i = Sheets(.Range("A1").Value) .Cells(65536, 1).End(xlUp).Row 1 Sheets (.Range("A1").Value) .Cells(i, 1).Value = .Range("K2").Value Sheets (.Range("A1").Value) .Cells(i, 3).Value = .Range("F8").Value Sheets (.Range("A1").Value) .Cells(i, 4).Value = .Range("F10").Value Sheets (.Range("A1").Value) .Cells(i, 5).Value = _ .Range("F12").Value & "-" & .Range("H12").Value & "-" & .Range("J12").Value Sheets (.Range("A1").Value) .Cells(i, 6).Value = .Range("F14").Value Sheets (.Range("A1").Value) .Cells(i, 7).Value = .Range("F16").Value Sheets (.Range("A1").Value) .Cells(i, 8).Value = .Range("F18").Value Sheets (.Range("A1").Value) .Cells(i, 9).Value = .Range("F20").Value Sheets (.Range("A1").Value) .Cells(i, 10).Value = .Range("F22").Value Sheets (.Range("A1").Value) .Cells(i, 11).Value = .Range("F24").Value Sheets (.Range("A1").Value) .Cells(i, 12).Value = .Range("F26").Value Sheets (.Range("A1").Value) .Range("A1,F8,F10,F12,H12,J12,F14,F16,F18,F20,F22,F24,F26") = "" End With --------------------------------------------------------------- どこか不備があるのでしょうか・・。何度も申し訳ないです。。。、 ---- 改行はこちらへ貼り付けた際に行いましたか? 実際も改行されている場合は、改行を削除して下さい。 Sheets (.Range("A1").Value).Cells(・・・ と一行にする。 また、最後の方に「Sheets (.Range("A1").Value)」しか無い行が有りますが・・・。 最初の方の i=・・・の .Row の後ろに「1」が有りますが・・・。 あとは、VBEの方(コードを貼り付ける方)の窓の上の所に 「中断」と書いてあったら、メニューの三角定規マークの隣にある ■(リセット)を押してリセットした後、実行してみて下さい。 (HANA) ---- HANAさん何度もアドバイスありがとうございます! 改行は削除しました。 >あとは、VBEの方(コードを貼り付ける方)の窓の上の所に 「中断」と書いてあったら、メニューの三角定規マークの隣にある ■(リセット)を押してリセットした後、実行してみて下さい。 こちらもやってみましたが、【実行エラー9 インデックスが有効範囲にありません】と でてしまいます・・。 コードもいろいろ確認してみたりしているのですが、エラーが毎回でてしまいます・・。 関係ないかもしれませんが、 > With Sheets("入力") If .Range("F8") = "" Then MsgBox "仕入形態が入力されていません。", , "エラー" .Range("F8").Select Exit Sub 上記のコードは9項目エラーがでるように設定しています。 なので上記コードが9続いて入力しています。 今回のエラーと何か関係ありますでしょうか・・? また>最初の方の i=・・・の .Row の後ろに「1」が有りますが・・・。 を確認してみました。 もともとseetをわける前には >i = Sheets(.Range("A1").Value).Cells(65536, 1).End(xlUp).Row + 1 と記載して問題はなかったのですが、 このコードの意味が自分で分かっていません・・。 昔誰かが使っていたエクセルを使いまわしていたので・・。 ------------------------------------------------------------------ Private Sub CommandButton1_Click() With Sheets("入力") If .Range("F8") = "" Then MsgBox "仕入形態が入力されていません。", , "エラー" .Range("F8").Select Exit Sub End If Dim i As Long i = Sheets(.Range("A1").Value).Cells(65536, 1).End(xlUp).Row + 1 Sheets(.Range("A1").Value).Cells(i, 1).Value = .Range("K2").Value Sheets(.Range("A1").Value).Cells(i, 3).Value = .Range("F8").Value Sheets(.Range("A1").Value).Cells(i, 4).Value = .Range("F10").Value Sheets(.Range("A1").Value).Cells(i, 5).Value = _ .Range("F12").Value & "-" & .Range("H12").Value & "-" & .Range("J12").Value Sheets(.Range("A1").Value).Cells(i, 6).Value = .Range("F14").Value Sheets(.Range("A1").Value).Cells(i, 7).Value = .Range("F16").Value Sheets(.Range("A1").Value).Cells(i, 8).Value = .Range("F18").Value Sheets(.Range("A1").Value).Cells(i, 9).Value = .Range("F20").Value Sheets(.Range("A1").Value).Cells(i, 10).Value = .Range("F22").Value Sheets(.Range("A1").Value).Cells(i, 11).Value = .Range("F24").Value Sheets(.Range("A1").Value).Cells(i, 12).Value = .Range("F26").Value Sheets(.Range("A1").Value).Cells(i, 13).Value = .Range("F28").Value .Range("A1,F6,F8,F10,F12,H12,J12,F14,F16,F18,F20,F22,F24,F26") = "" End With End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) End Sub --------------------------------------------------------------------------- 上記のようにコードを設定、また、リセットし実行すると 実行エラー9とでてしまいます。。 反映するほうのseetにも何か設定が必要なのでしょうか・・・? 何度も本当に申し訳ないです・・。 ---- >【実行エラー9 インデックスが有効範囲にありません】 は、タブン シート名が一致していないのだと思います。 ↓のコードで、A1セルに入力されているシートが選択出来ますか? それとも、同じエラーになりますか? Sub シート選択() 'A1セルに入力されているシートを選択します。 Sheets(Range("A1").Value).Select End Sub A1セルの入力規則を解除して シートタブからシート名をコピーして 貼り付けた後、もう一度やってみて下さい。 ちなみに、A1セルの書式設定は「標準」ですか? >上記のコードは9項目エラーがでるように設定しています。 >なので上記コードが9続いて入力しています。 これは関係ないと思います。 (HANA) ---- HANAさん! ありがとうございます!! できました!! 本当に何度も何度もありがとうございます! 勉強になりました!! (mako) ---- 出来ましたか。良かったです。 このコードは、必ず入力シートが表示された状態で 実行されますよね? でしたら「With Sheets("入力")」は省略出来ます。 すると、「With Sheets(.Range("A1").Value)」と書いて こちら側を省略する事が出来るように成ります。 ↓の様に。 Private Sub CommandButton1_Click() Dim i As Long If Range("F8") = "" Then MsgBox "仕入形態が入力されていません。", , "エラー" Range("F8").Select Exit Sub End If With Sheets(.Range("A1").Value) i = .Cells(65536, 1).End(xlUp).Row + 1 .Cells(i, 1).Value = Range("K2").Value .Cells(i, 3).Value = Range("F8").Value .Cells(i, 4).Value = Range("F10").Value .Cells(i, 5).Value = _ Range("F12").Value & "-" & Range("H12").Value & "-" & Range("J12").Value .Cells(i, 6).Value = Range("F14").Value .Cells(i, 7).Value = Range("F16").Value .Cells(i, 8).Value = Range("F18").Value .Cells(i, 9).Value = Range("F20").Value .Cells(i, 10).Value = Range("F22").Value .Cells(i, 11).Value = Range("F24").Value .Cells(i, 12).Value = Range("F26").Value .Cells(i, 13).Value = Range("F28").Value End With Range("A1,F6,F8,F10,F12,H12,J12,F14,F16,F18,F20,F22,F24,F26") = "" End Sub 因みに >i = .Cells(65536, 1).End(xlUp).Row + 1 この部分は 「Cells(65536, 1)」A65536のセル から 「End(xlUp)」 上方向へ移動し、最初に入力が有るセル 「Row」 の行番号 「+ 1」 に+1した値 つまり、A列の入力が有る最終行に+1した これからデータを転記する行を取得しています。 「With Sheets("入力")」をやめて「With Sheets(.Range("A1").Value)」にするので 今まで「.Range」と成っていた所が「Range」に変わり 「Sheets(.Range("A1").Value).Cells」と成っていた所が 「.Cells」に変わります。 (HANA) ---- >このコードは、必ず入力シートが表示された状態で 実行されますよね? はい!そうです! 省略できるんですね・・! やってみます! また、解説ありがとうございます!! 頑張ってエクセルマスターしたいです! HANAさんありがとうございました! (mako) ...
https://www.excel.studio-kazu.jp/wiki/kazuwiki/200903/20090306121020.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97033 documents and 608182 words.

訪問者:カウンタValid HTML 4.01 Transitional