advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 8930 for リスト (0.007 sec.)
[[20100319162132]]
#score: 2746
@digest: a2ed8f82e520cf035d7e56d94b5947b7
@id: 48415
@mdate: 2010-03-24T00:59:32Z
@size: 8177
@type: text/plain
#keywords: 録リ (28421), ス. (24495), rowsource (7174), タベ (5552), ベー (3868), executeexcel4macro (3583), 容量 (3483), リス (3191), listbox1 (2813), ドボ (2500), 登録 (2188), スト (2156), トキ (1982), ファ (1961), クエ (1895), コマ (1832), ォー (1830), フォ (1641), ース (1624), マン (1546), トカ (1536), ァイ (1519), 個人 (1518), ーム (1483), ョー (1474), エリ (1348), 開か (1320), イル (1271), 記述 (1229), 、リ (1220), ーメ (1208), ボタ (1143)
『ファイルを閉じたままリストボックスへ登録』(しーちゃん)
[リスト用のファイルから、ファイルを閉じままリストボックスへ登録したい] 現在、下記の様に、リスト用ファイルを開いていれば作動する記述は出来たのですが・・・・ Private Sub UserForm_Initialize() With ListBox1 .ColumnCount = 3 .ColumnWidths = "45;30" .RowSource = "[データベース.xls]登録リスト!J2:L40" .ColumnHeads = True End With End Sub これを、RowSource の部分をファイルを開く事なく、 リストをデータベース.xlsから所得する記述はどう書いたら良いのでしょうか? よろしくお願いします。 (エクセルのバージョンは2002のSP3です) ---- 素直に開いてください。 もしくは、フォームがあるブックのシートに参照するような数式を入れて、 そこを参照してください。 BJ ---- [[20100315155838]] 『参照するブックを開かずに更新するには』(初心者) この辺でも書きましたけど、開かずに処理したい理由はなんですか? 見栄えですか? 開くと不都合があるのですか? まず、RowSourceではなくてデータベース.xlsを開いて配列変数に取り込んでブックを閉じる。 その配列変数をListにセットする。 という事を画面更新を停止してやれば、開いているけど開いてないように見せる事は可能です。 (momo) ---- もしくは Dim x(1 To 39, 1 To 3), i As Long, ii As Long For ii = 10 To 12 For i = 2 To 40 x(i - 1, ii - 9) = ExecuteExcel4Macro("'[データベース.xls]登録リスト!'r" & i & "c" & ii) Next i, ii With ListBox1 .List = x .ColumnCount = 3 .ColumnWidths = "45;30" End With この場合、ColumnHeadsは使用できません。 修正 (seiya) ---- データベース.xls を使おうとしている元のファイルが容量2MBあり、 リストに登録したいものをシートし登録すると容量も幾分ですが増えてしまいます。 この元のファイルは、最終的には違うファイル名でいくつも保存されていきます。 少しでもいくつものファイル容量を小さくしたくて、また データベース.xls を使う理由は、グループ内でも個人用にリスト内容を変えられまし。 しかし、データベース.xls が必要かと言うと、・・・個人の差があります。 なのであらためて、開く、という操作をさせると面倒と言う声が聞こえてきそうです。 こんな理由から、面倒という事なく、リストを使いたい人・時には使える様に、 別ファイルにリストを用意し、個人的にリスト内容を変えて良く、 少しでもファイル容量を少ないしたい為です。 (しーちゃん) ---- いえいえ、データベースを他のブックにするというロジックは非常に大切です。 そうではなくて、RowSouceだと開きっぱなしにしないといけないですが 一瞬だけ開くという事がダメなのかどうかを聞きたかったのです。 「開かずに」ではなくて、「開いていないかのように」で良いのなら たとえば下のコードのようにして試してみてください。 実際に開いてデータを取得してListBoxにセットしていますが 開いている事はわからないくらいだと思いますので。 Private Sub UserForm_Initialize() Application.ScreenUpdating = False With Workbooks.Open("D:¥データベース.xls") tbl = .Worksheets("登録リスト").Range("J2:L40").Value .Close False End With With Me.ListBox1 .ColumnCount = 3 .ColumnWidths = "45;30" .List = tbl End With Application.ScreenUpdating = True End Sub (momo) ---- momoさんのとseiyaさんのを試してみました。 momoさんのですと、データベース.xlsの登録リスト(シート)を開いて終わってしまいます。 エラーは出ませんが、リストフォームも出現しませんでした。 seiyaさんのは、実行時エラー 1004、入力した数式は正しくありません、 とエラーで止まってしまいます。 どちらも、記述はここからコピーして貼り付けています。(ドライブ指定以外) (しーちゃん) ---- 私なら、データベースクエリで参照したいリストを自ブックに取り込みます。 自ブックの参照なら、問題ないですよね? リストの更新はクエリの自動更新に任せます。 フォームを起動するたびに別のブックを開いたり、参照したり、ということは なくなります。最新の情報が必要、という場合でも、クエリで一定時間ごとに 更新できるので、この辺のロジックをマクロで考えなくても済みますね。 (みやほりん)(-_∂)b ---- データベースクエリの詳細な使い方は解らないのですが、 フォームを使っているのは、リストボックスの中のリストから、 選択したものを任意のセルに書き込む事が出来るようにと思ってです。 今現在では、フォームも vbModeless にして、フォームを出していても 他の違う入力なども出来る様にしています。 コマンドボタンでも下記の様にして、リストの中に空を用意し、 すでに入力のあるセルには入力する事なくセルをひとつ下げられる様、 コマンドボタンを押しても大丈夫のようにしています。 vbModeless ですがちょっと下のセルに移動すれば良いだけなら、 フォームの中から次から次と選択して入力して行く中、わざわざフォームから 離れるのは面倒かという配慮です。フォームも今は4種(4種のリスト)用意しています。 規定された形が多くはなくアシストな感覚のものなのです。 その為個人で多少は個人用にリスト内容を変えられた方が便利でもある感じです。 Private Sub CommandButton1_Click() If UserForm4.ListBox1.Value <> "" Then ActiveCell.Value = UserForm4.ListBox1.Value ActiveCell.Offset(1, 0).Range("A1").Select End Sub 元々、この元のファイルは長年使われいる様ですが、 他の方は慣れてしまって、それほど変えなくても不便と言うほど ではない様でして・・・・、私は使い難いので変えたいのですが・・・ 変えるにはそれだけ大きな変化がないと変えられないのは人情かと思います。 今、2MBのファイルだったのをデータを別ファイルにし外部参照させる事で 1.6MB程度にまで少なく出来ていますが、リストを同ブック内に作っていくと シートが増え、また容量が増えて行く一方です。 元々のファイルは、最終的に名前を変えて日々増えて行きますので、 小さくしておきたいという狙いです。 オートオープンでリストデータ用ファイルを開かせようとしましたが、 エラーとなりました。オートクローズも間違って先に閉じられるとエラーです。 エラーが出ては作った本人は理解していますが、他人は・・・面倒ですね。 これを回避する記述がまた解らないので、RowSource が参照先のファイルを 閉じていても外部参照出来れば、と、思った訳です。どうか宜しくお願いします。 ---- RowSource プロパティはmomoさんのご指摘のとおり、開かれているブックでないと 利用できません。 だからこそ、「ちょこっと開く」っていうコードを提案されているのだと思います。 どうしても開きたくない、ということなら、 ・シートへ参照させてRowSource プロパティで取得 ・ExecuteExcel4Macro のどちらかですね。 (seiyaさんのコードは保存フォルダまで含んだ記述に書き換えないと不完全) ちなみに、ファイルサイズが大きいのは、 >長年使われいる様ですが、 が原因の場合もあります。(保存を繰り返すだけでも増える) 思い切ってまっさらの新規ブックで作り直すと、かなりサイズが 小さくなる可能性はあります。 (みやほりん)(-_∂)b ---- 沢山、ありがとうございました。 RowSource プロパティは開かれているブックでないと利用できないとのこと。 強風(暴風)で寝ても居られないです。 (しーちゃん) ---- 念の為に、seiyaさんのコードを保存フォルダまで含んだ記述に書き換えましたが、 エラーメッセージは同じく出てしまいます。数式が正しくないと。 (しーちゃん) ---- momoさん大変ありがとうございました。 皆様もありがとうございました。 やっと出来ました。 出来なかった、原因はコマンドボタンにマクロ登録をせず、 ショートカットキーを使っていた為でした。 (2個のリストはちゃんとコマンドボタンを作りましたが、 残り2個は、ソースをコピーしてコマンドボタンは省略してました、 いろいろやってる中、エラーメッセージがちょっと変わり、もしかして・・と、 正規の手順で作った方でやったら成功しました) 本当に、ありがとう御座いました。 (しーちゃん) ---- コマンドボタンではなく、フォームのボタンでした。(間違えました) マクロを登録するボタンを作っていたか、ショートカットキーから呼び出したかの違いで、 うまくいかなかった様です。 (しーちゃん) ---- > 念の為に、seiyaさんのコードを保存フォルダまで含んだ記述に書き換えましたが、 > エラーメッセージは同じく出てしまいます。数式が正しくないと シングルクォーテーション「'」の位置は「!」の左です ↓ > = ExecuteExcel4Macro("'[データベース.xls]登録リスト!'r" & i & "c" & ii) (半平太) 2010/03/21 12:24 ---- 半平太さん、ありがとうございます。 良く考えれば、ほんとそうですね、気づきませんでした。 フォームボタンを作ってやってますが、相変わらず、ショートカットキーでやると止まります。 出来る事は分かったので、メデタシメデタシ状況です。 ...
https://www.excel.studio-kazu.jp/wiki/kazuwiki/201003/20100319162132.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97045 documents and 608223 words.

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