• ベストアンサー

ダイアログボックスで入力したい

たとえばダイアログボックスでIDと名前を入れると ID=1022 名前=織田信長 セルB5に ='C:\Documents and Settings\Owner\デスクトップ\[1022織田信長.xls]Sheet1'!$C$5 のように入るように作るにはどのように書けばいいでしょうか? 本当によろしくお願いいたします。

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

  • ベストアンサー
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.4

>変化するのは行だけなんですがDとかEとかHとか飛び飛びではあるんですが可能でしょうか? まず、このコードを書いているBookのA列の最終行と同じ行のE・F・H列に 数式を入れるとします。 数式はIDと名前を基にBook・Sheet・列を指定しますが、その時の 指定されるBookのどの行を呼び出すのか?なんですけど。 仮に呼び出す方のBookの新しく書き込む行と同じで良ければ、 Sub TEST2()   Dim ID As String   Dim Nam As String   ID = Application.InputBox("IDは?", "ID入力", Type:=2)   Nam = Application.InputBox("名前は?", "名前入力", Type:=2)   If LenB(ID) * LenB(Nam) = 0 Or (ID = "False" Or Nam = "False") Then         Exit Sub   Else   With Range("A" & Cells(Rows.Count, 1).End(xlUp).Row).Offset(1)   .Offset(0, 0).Value = Nam   .Offset(0, 2).Value = ID   .Offset(0, 4).Formula = _               "='C:\Documents and Settings\Owner\デスクトップ\[" _               & ID & Nam & ".xls]Sheet1'!C" & .Row   .Offset(0, 5).Formula = _               "='C:\Documents and Settings\Owner\デスクトップ\[" _               & ID & Nam & ".xls]Sheet1'!D" & .Row   .Offset(0, 7).Formula = _               "='C:\Documents and Settings\Owner\デスクトップ\[" _               & ID & Nam & ".xls]Sheet1'!E" & .Row   End With   End If End Sub こんな感じになりますが。 参照先のどの行を選択させるのか?が疑問です。 列を変化させるのなら数式のC・D・E等を変えれば良いだけですが、 各Bookの最新(最終行)となると数式を入れるのでは無理です。 参照したいBookを開いて最終行を取得し、数式ではなく値をいれるしか ないかと。

wingup
質問者

お礼

.Offset(0, 7).Formula = _ "='C:\Documents and Settings\Owner\デスクトップ\[" _ & ID & Nam & ".xls]Sheet1'!$E$30" このような形にしたらできました。 本当に本当にありがとうございました。 これを参考にシート名も埋め込めるように自分で考えてやってみようと思います。 夜遅くまで本当にすみませんでした。

wingup
質問者

補足

本当に本当にありがとうございます。 とてもとても嬉しいです。 参照先の行は30行目で固定なんですがそれは埋め込めばいいですよね。 今からやってみます。

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

その他の回答 (3)

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.3

>A列最終行の一つ下が5番目の場合、A列に名前が入りその右ひとつ飛ばした所にIDがC6が入り、E6、F6、H6に順次 結局A列の名前とC列のIDを基にしたいと言う事ですか? (ダイアログを使うのではなく) E列より右にどのような式を入れたいのか? Sheet1'!$C$5 ←このC5は行・列に対して固定?変動? 変動であれば参照するセルはどのように変化させたいのか?

wingup
質問者

お礼

すみません 書くというのは10個ぐらいあるので 下記のように一つ一つ書いていくと言う意味だったんですが本当にすみませんでした。 Range("B5").Formula = _              "='C:\Documents and Settings\Owner\デスクトップ\[" & ID _               & Nam & ".xls]Sheet1'!R5C"  Range("B5").Formula = _              "='C:\Documents and Settings\Owner\デスクトップ\[" & ID _               & Nam & ".xls]Sheet1'!R5E3"  Range("B5").Formula = _              "='C:\Documents and Settings\Owner\デスクトップ\[" & ID _               & Nam & ".xls]Sheet1'!R5H3"

wingup
質問者

補足

一つ一つ書こうと考えています。 変化するのは行だけなんですがDとかEとかHとか飛び飛びではあるんですが可能でしょうか?

全文を見る
すると、全ての回答が全文表示されます。
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.2

ANo.1です。 B列の最終行なら >Range("B5") を Range("B" & Cells(Rows.Count, 2).End(xlUp).Row) として下さい。 最終行の1つ下なら、 Range("B" & Cells(Rows.Count, 2).End(xlUp).Row+1) ですね。 A列の最終行に合わせるのなら、 Range("B" & Cells(Rows.Count, 1).End(xlUp).Row) です。

wingup
質問者

補足

早速のご回答本当にありがとうございます。 ただ、私が馬鹿すぎなのか例えば、A列最終行の一つ下が5番目の場合、A列に名前が入りその右ひとつ飛ばした所にIDがC6が入り、E6、F6、H6に順次='C:\Documents and Settings\Owner\デスクトップ\[1022織田信長.xls]Sheet1'!$C$5←これの少し変化したもが入るようにしたいんですがどうもわかりません。 名前はどんどん追加されますのでこの形を取っています。 できそうで出来なくて・・・・・本当にすみません よろしくお願いいたします。

全文を見る
すると、全ての回答が全文表示されます。
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

Sub TEST()  Dim ID As String  Dim Nam As String  ID = Application.InputBox("IDは?", "ID入力", Type:=2)  Nam = Application.InputBox("名前は?", "名前入力", Type:=2)  If LenB(ID) * LenB(Nam) = 0 Or (ID = "False" Or Nam = "False") Then     Range("B5").ClearContents     Exit Sub  Else  Range("B5").Formula = _              "='C:\Documents and Settings\Owner\デスクトップ\[" & ID _               & Nam & ".xls]Sheet1'!R5C3"  End If End Sub こんな感じの事でしょうか?

wingup
質問者

補足

すみません 大変ありがとうございました。 これをB5ではなく最下行に挿入するにはどうしたらいいでしょうか? すみませんがよろしくお願いいたします。

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

関連するQ&A

  • ダイアログボックスから関数と変数の挿入

    ダイアログボックスから名前とID番号を入れると最下行にその名前とIDになった関数がセルの中に挿入されるようにするにはどうすればいいのでしょうか? B50='C:\Documents and Settings\Owner\デスクトップ\[(1022徳川家康).xls]Sheet1'!$A$2 B51='C:\Documents and Settings\Owner\デスクトップ\[(1022徳川家康).xls]Sheet1'!$A$3 B52='C:\Documents and Settings\Owner\デスクトップ\[(1022徳川家康).xls]Sheet1'!$A$4 たとえばB50、B51、B52のセルに上記な関数を総合という名前のブックに作成しています。 それは1022徳川家康ブックから読み込まれます。 総合というブックにダイアログボックスがあり織田信長という名前とID1023を入れると B60='C:\Documents and Settings\Owner\デスクトップ\[(1023織田信長).xls]Sheet1'!$A$2 B61='C:\Documents and Settings\Owner\デスクトップ\[(1023織田信長).xls]Sheet1'!$A$3 B62='C:\Documents and Settings\Owner\デスクトップ\[(1023織田信長).xls]Sheet1'!$A$4 と言うように入力したいと考えています。 ダイアログボックスを使用しないで作成する方が良いのかも良くわかりませんが、このようなものは作成できるでしょうか? よろしくお願いいたします。

  • 入力された名前やIDを変数に代入させて簡単に入力

    例えば セルB2に織田信長、セルB3に1022 セルB5に ='C:\Documents and Settings\Owner\デスクトップ\[1022織田信長.xls]Sheet1'!$C$5 セルB6に ='C:\Documents and Settings\Owner\デスクトップ\[1022織田信長.xls]Sheet1'!$C$6 セルB8に ='C:\Documents and Settings\Owner\デスクトップ\[1022織田信長.xls]Sheet1'!$C$8 というような式が入っているんですが、新たに番号1023の徳川家康さんを登録した時に 最下行でもいいんですが、セルC2に徳川家康、セルC3に1023が入力され セルC5に ='C:\Documents and Settings\Owner\デスクトップ\[1023徳川家康.xls]Sheet1'!$C$5 セルC6に ='C:\Documents and Settings\Owner\デスクトップ\[1023徳川家康.xls]Sheet1'!$C$6 セルC8に ='C:\Documents and Settings\Owner\デスクトップ\[1023徳川家康.xls]Sheet1'!$C$8 というような形で簡単に書き換えてくれるようなVBAの式はつくれますか?とにかく新しく新入生が入ったときに簡単に入力が出来るようにしたいです。 いい方法がありましたらお教え下さい。よろしくお願い致します。

  • Excel - セルの値を外部シート名として認識させる

    お世話になります。 例えばデスクトップに置いてあるブックのセルを、別のブックのセルに引っ張るとき。 ='C:\Documents and Settings\UserName\デスクトップ\[Book1.xls]Sheet1'!A1 という風になりますが。 例えばBook2のセルA1に【Book3】、A2に【Sheet5】とあってこれらが可変であるとき、セルA3に ='C:\Documents and Settings\UserName\デスクトップ\[Book3.xls]Sheet5'!A1 の値を引っ張ろうと思ったら、それは可能でしょうか。 【Book3】、【Sheet5】はそれぞれユーザが任意に入力すると、テーブルの値が変わる、という風にしたいわけですが。

  • ダイアログボックス

    VB6.0で開発しています。 下記のようにして名前を付けて保存]ダイアログボックスを使って 保存しようと思っているのですが ダイアログボックスが開くとファイル名のところに:が表示されており :のままでキャンセルを押すとFalse.xlsという名前でマイドキュメントに保存されてしまいます。何が原因なんでしょうか? お願いします。 exl.Sheets(1).Name = "Sheet1" exl.Application.Visible = True fnm = Application.GetSaveAsFilename(fileFilter:="Excel ファイル (*.xls), *.xls") exl.SaveAs fnm

  • エクセル2007 マクロについて教えてください

    エクセルのデータが2個あります。 それぞれ、ファイル名は 顧客データ.xlsと個別シート.xlsです。 顧客データ.xlsには、10名のお客様の情報があり、A1セルには ID番号 と入力してあり、 A2~A11セルにID番号が入力されています。 『個別シート.xlsにマクロで顧客データ.xlsのデータをコピーし、ID番号のフォルダをデスクトップに新規作成し、ID番号を付けて保存する』マクロを作成中です。 顧客番号が1234のお客様のデータを、個別シートにコピーし、デスクトップに1234というフォルダを新規作成し、その中に 個別シート_1234.xls というファイル名で保存をしたいです。 顧客データを自動でコピーするまではできましたが、それ以降ができません。 MkDir "C:\ Documents and Settings\xxx\デスクトップ\nknk\ID " ChDir "C:\ Documents and Settings\xxxi\デスクトップ\nknk\ID " ActiveWorkbook.SaveAs Filename:="個別シート_" & ID & ".xls" ActiveWorkbook.Close マクロを実行すると『実行時エラー76:パスが見つかりません』とエラーになります。 (フォルダ作成の命令文のところが黄色くなります。) ちなみに、個別シートの指定したセルに、IDはコピーされています。 正しく実行できる文を教えてください。また、以降の命令文は正しいでしょうか。 よろしくお願いします。  

  • エクセルマクロでマクロをアクティブにしたくない

    エクセルのマクロをひとつの「マクロA」という名前で、データーファイルからセルに入っている内容などを呼び出しながらまくろAのシートにデーターを貼り付けながら作業をしています。 Workbooks.Open Filename:= _ "C:\Documents and Settings\owner\My Documents\マクロ.xls" Application.Run "マクロ.xls!マクロ" と記載すると、マクロXLSがアクティブになってしまいます。 その為記載に'ActiveWindow.WindowState = xlMinimized と入れたりするのですが、アクティブになるシートがマクロ以外にうまくいかないことがあるのです。 データーシートは、毎回データーが変わる関係で、DATA.xlsがAのときやBのときが発生します。

  • 統合マクロでパスの取得方法

    お世話になります。 集計ファイルでエリア・商品で集計をとっています。 一つのファイルにまとめたいのでエリアをシート名による串刺し 商品を統合を使って集計していますが 毎回統合ボタンを押すのが大変で マクロを使い下記のコードを使っていますがファイルのパスで固定されているので 人に渡すとファイル名の変更、ユーザーの違いによりエラーになってしまいます。 現在開いているファイルの名前とパスをマクロに取り込み統合させる事は可能でしょうか Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2009/9/29 ユーザー名 : user ' ' Sheets("一般A").Select Range("b6").Select Selection.Consolidate Sources:=Array( _ "'C:\Documents and Settings\user\デスクトップ\[8期資料.xls]〇〇一般A'!R6C2:R64C9", _ "'C:\Documents and Settings\user\デスクトップ\[8期資料.xls]□□一般A'!R6C2:R64C9", _ "'C:\Documents and Settings\user\デスクトップ\[8期資料.xls]△△一般A'!R6C2:R64C9", _ "'C:\Documents and Settings\user\デスクトップ\[8期資料.xls]××一般A'!R6C2:R64C9", _ "'C:\Documents and Settings\user\デスクトップ\[8期資料.xls]●●一般A'!R6C2:R64C9", _ "'C:\Documents and Settings\user\デスクトップ\[8期資料.xls]■■一般A'!R6C2:R64C9", _ "'C:\Documents and Settings\user\デスクトップ\[8期資料.xls]▲▲一般A'!R6C2:R64C9", _ "'C:\Documents and Settings\user\デスクトップ\[8期資料.xls]++一般A'!R6C2:R64C9", _ "'C:\Documents and Settings\user\デスクトップ\[8期資料.xls]※※一般A'!R6C2:R64C9", _ "'C:\Documents and Settings\user\デスクトップ\[8期資料.xls]%%一般A'!R6C2:R64C9"), _ Function:=xlSum, TopRow:=False, LeftColumn:=False, CreateLinks:=False Sheets("一般B").Select Range("b6").Select Selection.Consolidate Sources:=Array( _ "'C:\Documents and Settings\user\デスクトップ\[8期資料.xls]〇〇一般B'!R6C2:R64C9", _ "'C:\Documents and Settings\user\デスクトップ\[8期資料.xls]□□一般B'!R6C2:R64C9", _ "'C:\Documents and Settings\user\デスクトップ\[8期資料.xls]△△一般B'!R6C2:R64C9", _ ・ ・ ・ ・ End Sub DIMとかActiveWorkbook.Pathとか組み込みましたが うまく行かないです。 どうぞ助けてください。

  • 警告のダイアログBOXがでてしまいます!!

    初めまして。富士通さんのノートパソコンを使用しています。 何もした覚えはないのに、一昨日からデスクトップ上にあるOWNERのフォルダーを開くと 「-Windowsセキュリティー-  これらのファイルを開くと、コンピューターに害を及ぼす可能性があります。  インターネットセキュリティ設定のために1つ以上のファイルが開かれませんでした。これらのファイルを開きますか? というダイアログBOXが出てきてOKかキャンセルかを尋ねてきます。 OKをクリックするといつものように開くことができるのですが、何かしたわけではないので、とても気になります。それと前後してインターネットを立ち上げると、お気に入りの場所にデスクトップというフォルダーができてしまいました。このフォルダーの中身はパソコンのデスクトップ上にあるフォルダー等がすべて表示してあるのですが、このフォルダーってインターネットのお気に入り欄にできるようなものではありませんよね。 どうしてデスクトップというフォルダーがインターネットのお切り入り欄にできてしまったのかもわかりません。でもって、このフォルダーの場所がプロパティーで調べると C:¥Users¥OWNER¥Favorites¥Desktopとなっています。 どなたか (1)このダイアログボックスが出てこないようにする方法と (2)インターネットのお気に入りの中にできてしまったdesktopフォルダーを消す方法を教えていただけないでしょうか。ちなみにこのダイアログボックスですが、OWNERのショートカットをデスクトップ上に作成してこちらで開いて対処しています。 どうかよろしくお願い致します。

  • VBA フォルダ内にファイルが存在するか確認したい

    OS: WindowsXP Office: 2003 ExcelVBAについて教えてください。 VBAで特定のフォルダー内でファイルが存在するかの確認をしたいのです。 例えば、以下のようなフォルダーに営業日がファイル名に付いた複数のファイルがあります。  C:\Documents and Settings\aaa\デスクトップ\作業\報告書20120201.xls  C:\Documents and Settings\aaa\デスクトップ\作業\報告書20120202.xls  C:\Documents and Settings\aaa\デスクトップ\作業\報告書20120203.xls  C:\Documents and Settings\aaa\デスクトップ\作業\報告書20120206.xls  C:\Documents and Settings\aaa\デスクトップ\作業\報告書20120207.xls  C:\Documents and Settings\aaa\デスクトップ\作業\報告書20120208.xls 処理は20120201(2012年2月1日)から順番に行うのですが、その際、 報告書20120203.xlsはファイルが存在しているので変数1を返す。 報告書20120204.xlsは休日のためファイルが存在しないので変数0を返す。 次の処理で変数1の場合は処理をし、変数0の場合は処理を飛ばすと言った内容のマクロを考えています。 要はフォルダー内にファイルが存在するかしないかの部分のマクロ記述を知りたいのです。 どなたか、よろしくお願いします。

  • EXcelの、=以下の意味について

    お世話になります。 別々のExcelファイルにおいて、片方のファイルに 情報を入力すると、もう片方に情報が反映される ということを試しています。 すると下記の文(式というのでしょうか)が出てきます。 1) =Sheet2!B2 2) =[B.xls]Sheet1!$B$2 3) ='C:\Documents and Settings\会計\デスクトップ\[B.xls]Sheet1'!$B$2 4) ='C:\Documents and Settings\会計\デスクトップ\フォルダA\[B.xls]Sheet1'!$B$3 これらの 文章の意味(何をあらわしているか)ご存知の方 お教え下さい。 また、下記のマークはそれぞれ何と読み、どのような働きを しているのでしょうか? !、 [ ]、 '、 :、 \、 $、 このようなことを教えてくれるサイトをご存知でしたら あわせて教えて頂けると助かります。 宜しくお願い致します。

このQ&Aのポイント
  • マッチングアプリで知り合った人と楽しい食事デートをしました。帰りは終電ギリギリで慌てて帰りましたが、お礼も言えなかったことを後悔しています。彼からは連絡があり、次回も会うことを約束しましたが、最近はなかなか連絡が来ず、悩んでいます。
  • マッチングアプリで知り合った人との楽しい食事デート。ライン交換もでき、次の約束も取り付けようとしましたが、返信がなくなってしまい、不安になっています。彼の仕事の忙しさや自分への印象が気になります。
  • マッチングアプリで知り合った人と楽しい食事デートをしたものの、最近は連絡が減ってきています。彼との会話も少なくなり、返信も遅いです。彼の忙しさや自分への気持ちがわからず、返事が来なくて悩んでいます。
回答を見る

専門家に質問してみよう