• ベストアンサー

自動起動する必要の無いファイルは起動しない

エキセルファイルのtestを起動すると  Personal XLSB以外のcalldataも同時に自動起動しているようです。 calldataは、自動する起動する必要がないファイルです。 起動しないように設定するにはどうすれば良いでしょうか ? 添付画像を参照ください。

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4856/10272)
回答No.2

拡張子txtというのが不審ですが、XLSTARTフォルダーに入っているから開かれるんじゃないでしょうか。 XLSTARTファイルの場所は環境によって違います。PERSONAL.XLSBファイルを名前で検索すると、その場所がXLSTARTフォルダーです。

NuboChan
質問者

お礼

>XLSTARTフォルダーに入っているから開かれるんじゃないでしょうか。 notnotさん、上記の意味が判りました。 XLSTARTフォルダーに、ファイル名がcelldata.txtのファイルが存在するのでは? の意味だったのですね。 チェックすると確かに  無関係なテキストファイル(celldata.txt)が存在していました。 ファイルを削除して問題が解決しました。 アドバイス感謝いたします。

NuboChan
質問者

補足

notnotさん、回答ありがとうございます。 PERSONAL.XLSBは、下記のフォルダーに存在しています。 C:\Users\*****\AppData\Roaming\Microsoft\Excel\XLSTART officeは、2019(x64)版です。 ------------- >XLSTARTフォルダーに入っているから開かれるんじゃないでしょうか。 この意味が理解できません。 試しにcelldataシートが有る状態で  シートを追加(名前は、Sheet1のまま)でcelldataシートを削除し  Sheet1のシートだけが存在する状態で上書き変更して  再度エキセルを起動させてもCelldataシートだけが復活しています。  (Sheet1名のシートはありません。)

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

その他の回答 (1)

  • bardfish
  • ベストアンサー率28% (5029/17765)
回答No.1

起動しないようにするのは無理じゃないでしょうか? 新規作成でたちげてもSheetの数だけ出来てしまいます。 予測ですが、Sheetから自分で作成した(または利用する)VBAコードを呼び出すためのモジュールではないかと・・・ Excel VBAの元祖でもあるVisul Basicでも画面であるフォームオブジェクトに貼り付けたコマンドボタンやコンボボックスのイベントを処理するサブルーチンは必ず作られます。そこからフォーム以外のオブジェクトファイルに記述した関数やステートメントを呼び出すのです。 Excelの場合はシートがVBのフォームに相当するとお思います。 ですから、そういう構成になるのは仕方ないと思います。 Visual StudioからExcel VBAにはいった私にとっては違和感はないです。むしろ.netの便利な機能が使えなくて使いたくないとさえ思っています(笑) まぁ、実際にExcelのVBAで作られてたものをVisual Basic .NET + SQL Serverに移植してプログラムのメンテがかなり楽になったし、処理時間の大幅短縮を実現できました。

NuboChan
質問者

お礼

bardfishさん、アドバイス感謝します。 >予測ですが、Sheetから自分で作成した(または利用する)VBAコードを呼び出すためのモジュールではないかと・・ 回答を受けてPERSONAL.XLSBのVBAコード(Module1,2)を見直してみる事にしました。 celldataでシートを作成している箇所が無いか?  celldataで検索してみるました。  結果、Module2でテキスト出力名でcelldata.txtをしている事が判りました。  他所で頂いたコードです。(少しだけ私的な修正があります。) テキストに書き出すのでシート名と関係なさそうなのですが、認識が間違っていますか? 質問では、エキセルファイルのtestを起動する事を前提で質問を始めましたが 現在、単にEXCELを立ち上げるだけでも必ずcelldata名のシートが作成されます。 celldata名のシートを作成しないようにはできませんか? 以下、Module2(コード)です。 '===================================================== ' 投稿用シートレイアウトをクリップボードに取得(改造版) '              作成者(momo)+ Me ' ' BrkStr:列間の文字列 初期値は「|」 ' DataObjectID:DataObjectのLate Binding用(変更不可) '===================================================== Option Explicit Sub 投稿用シートレイアウトをクリップボードに取得() Const BrkStr As String = "|" Const DataObjectID As String = "1C3B4210-F441-11CE-B9EA-00AA006B1A69" Dim myRng As Range, rngFormula As Range, rngBuf As Range Dim tbl() As Variant Dim AryTxt() As String, StrBuf As String Dim i As Long, j As Long, AryWidth() As Long, LenBuf As Long Dim YesNo As Variant Set myRng = Application.InputBox("取得したい範囲を選択してください。", Type:=8) If MsgBox("数式として表示したい範囲はありますか?", vbYesNo) = vbYes Then Do Set rngBuf = Application.InputBox("数式として表示したい範囲を選択してください。", Type:=8) If rngFormula Is Nothing Then Set rngFormula = rngBuf Else Set rngFormula = Application.Union(rngFormula, rngBuf) End If Set rngBuf = Nothing Loop While MsgBox("さらに数式として表示したい範囲がありますか?", vbYesNo) = vbYes End If ReDim tbl(1 To myRng.Rows.Count, 1 To myRng.Columns.Count) ReDim AryWidth(1 To UBound(tbl, 2)) For i = 1 To myRng.Rows.Count For j = 1 To myRng.Columns.Count tbl(i, j) = myRng.Cells(i, j).Text If Not rngFormula Is Nothing Then If Not Application.Intersect(myRng.Cells(i, j), rngFormula) Is Nothing Then tbl(i, j) = myRng.Cells(i, j).Formula End If End If LenBuf = Application.Evaluate("LENB(""" & Replace(tbl(i, j), """", vbTab) & """)") If AryWidth(j) < LenBuf Then AryWidth(j) = LenBuf End If Next j Next i ReDim AryTxt(UBound(tbl, 1)) AryTxt(0) = String(Len(myRng.Rows(myRng.Rows.Count).Row) + 3, " ") For i = 1 To UBound(tbl, 2) StrBuf = "[" & Split(myRng.Columns(i).EntireColumn.Address(False, False), ":")(0) & "]" If AryWidth(i) > Len(StrBuf) Then AryTxt(0) = AryTxt(0) & BrkStr & StrBuf & String(AryWidth(i) - Len(StrBuf), " ") Else AryTxt(0) = AryTxt(0) & BrkStr & StrBuf AryWidth(i) = Len(StrBuf) End If Next i For i = 1 To UBound(tbl, 1) AryTxt(i) = " [" & myRng.Rows(i).Row & "]" & _ String(Len(myRng.Rows(myRng.Rows.Count).Row) - Len(myRng.Rows(i).Row), " ") For j = 1 To UBound(tbl, 2) LenBuf = Application.Evaluate("LENB(""" & Replace(tbl(i, j), """", vbTab) & """)") If IsNumeric(tbl(i, j)) Then AryTxt(i) = AryTxt(i) & BrkStr & String(AryWidth(j) - LenBuf, " ") & tbl(i, j) Else AryTxt(i) = AryTxt(i) & BrkStr & tbl(i, j) & String(AryWidth(j) - LenBuf, " ") End If Next j Next i YesNo = MsgBox("クリップボードの出力ですか?(テキスト出力なら「いいえ」)", 3 + 32, "出力箇所(クリップボード、テキスト)の指定") Select Case YesNo Case 6 'クリップボード出力 With GetObject("new:" & DataObjectID) .SetText Join(AryTxt, vbCrLf) .PutInClipboard End With MsgBox "クリップボードに出力しました。" Case 7 'テキスト出力 Open "C:\Users\Nubo\Desktop\" & "celldata.txt" For Output As #1 For i = LBound(AryTxt) To UBound(AryTxt) AryTxt(i) = Replace(AryTxt(i), vbTab, Chr(32)) Print #1, AryTxt(i) Next Close #1 MsgBox "デスクトップにテキストファイルを作成しました。" Case 2 '処理中止 MsgBox "キャンセルが押されました。" End Select End Sub

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

関連するQ&A

  • EXCEL VBA 自分自身のファイルの置き換え

    現在、自分で作ったマクロを登録したバイナリファイルを、何人かに配布しているのですが、モジュール・フォーム共に多数登録してある為、更新に時間が掛かってしまいます。 そこで、更新を自動にしようと思い立ちました。 モジュールとフォームの数が多いので、バイナリファイルごと入れ替える方式にしようと思っております。 具体的に言うと、 (1)PERSONAL.xlsbファイル内に以下の内容のマクロを起き、ファイルを開いた時に自動で起動する。 (2)ネットワークフォルダ内のMACRO.xlsbと、 CドライブXLSTARTフォルダ内のPERSONAL.xlsbを比べる。(3)MACRO.xlsbの方が新しかったら、MACRO.xlsbをXLSTARTフォルダ内にコピーする。 (4)PERSONAL.xlsbを削除する。 (5)MACRO.xlsbの名前をPERSONAJ.xlsbにする。 (6)自分自信を別名保存し、MACRO.xlsbをリネームし、そのファイルをオープン。 (7)MACRO.xlsbのsheet1に組み込んだマクロを起動し、別名にしたPERSONAL.xlsbを閉じて、削除する。 この工程で、(6)までは何とか出来たのですが、(7)のマクロが起動しません。 マクロ呼び出しのコードは、 Application.Run "PERSONAJ.xlsb!削除" としていますが、エラーが出る訳でも無く、動きません。 何故でしょうか? バイナリファイルだからとか、何か制約があるのでしょうか? 分かる方、是非ご教示下さい。

  • Excel2007なら何もしなくても自動参照設定?

    Excel VBAでアプリを開発中です。 リリースに際して参照設定の問題(利用者が参照設定を正しくしてくれないと動かない問題)が心配になり、確認したところ、Excel2007であれば必要な参照は勝手にやってくれることが分かりました。 (Excel2007を起動した直後と、アプリを起動した直後の参照設定状況の比較画像を添付しました。) 参照設定を自動化するようなプロシージャは入れていないにも関わらず、アプリを起動しただけで、必要とされる3つのファイルが追加参照されていることが分かります。パーフェクトです。 嬉しい誤算ですが、このようなことはどこにも書いてありません。 Excel2007から備わった機能なのでしょうか? 仕組みを理解していないと、ある日突然参照設定されなくなるおそれもあり、理解しておきたいのです。 宜しくお願いします。

  • Excelのマクロ

    よろしく御願い致します Excel2007でマクロを作り「個人用マクロ」PERSONAL.XLSBに登録しましたそこで質問ですが、Excel起動のたび、前には作成した名前で開いていましたが、今は必ずPERSONAL.XLSBの画面が開きその後でファイル名で開きますがマクロをPERSONAL.XLSBに保存するとこう言うものでしょうか。 出来れば、マクロを使いたい時のみPERSONAL.XLSBで開きたいのです それと、オーズEX_12 オーズカレンダー.xlsと言うソフトを使いたいのでオーズカレンダー.xlsを開くと {このアプリケーションと他のExcelブックを 同時に使用することは出来ません。 他のブックを全て閉じてからもう一度起動してください} と表示されて、OKをクリックしても使用出来ませんが何か関係が有るでしょうか。

  • サービスが自動起動しない

    サービスが自動起動しない windowsのサービスで、スタートアップの種類を自動にしてあるのに、 windows起動時に自動的に起動しないものがあります。 これを自動的に起動するようにしたいのですが、どうしたらいいでしょうか。 スタートアップの種類以外にも設定が必要でしょうか。

  • Excel2007で新規ファイルを2回開くと使用中のファイルとメッセージが開きます。

    Excel2007を使用しています。エクセルを起動中にデスクトップのエクセルアイコンから起動させると「PERSONAL.XLSBは編集のためロックされています。」というメッセージが表示されます。 今までそんなメッセージが表示されることはなかったのですが、急に表示するようになってしまいました。どーしたらよいのでしょうか? 特にべつのファイルを開いていることはないのですが…

  • Excel起動時に自動的に立ち上がるファイルがあります。

    いつもお世話になっております。 今回も宜しくお願い致します。 Excel2002を使っているのですが 起動しますと“PERSONAL.xls”というファイルが自動的に開きます。ファイルは真っ白でデータなどはないようです。 スタートメニューの“検索”でこのファイルの場所を確かめようと思ったのですが 検索でヒットしません。ですが間違いなくExcelを起動するたびに必ず開かれるファイルです。 ひとつ気になっているのは マクロの保存先にこのファイルがあります。 自分が何をしたのかも わからないです。 どうかご指導下さいませ。 宜しくお願い致します。

  • ファイルをダウンロードして自動解凍して自動起動するには?

    ファイルのダウンロードは<a href="ファイル名.拡張子">xxx</a> ですよね。では、 (1)自動解凍するにはどうすればいいの? (2)そのあと自動起動するにはどうすればいいの? ファイルの中身は画像とスライドショープログラムがフォルダに入っています。

  • 自動起動するアプリの設定ファイルの場所

    fedora14を使っています。 パソコン起動時に任意のアプリの自動起動をおこなう為に「自動起動するアプリ※」を使用しています。 ※ ツールバー>システム>設定>自動起動するアプリ この自動起動するアプリの設定(管理?)ファイルを直接書き換えたいと思っています。ファイルはどこに保存されているかわかりますでしょうか?

  • 必要でもないのにPicasa3が起動してしまう

    CDドライブに画像がファイルされているCDを挿入すると必要でもないのにPicasa3が 自動的に起動し、ファイル画像の読み込みを開始してしまいます。 その都度、画面を閉じていますが最初から起動しないように停止する方法がありま したらご教示ください。 以前はこんな現象がなかったのですが不思議です。

  • パソコン起動時に、自動でインターネットに接続するには

    こんにちは。よろしくお願いします。 会社のパソコンを、起動と同時にインターネット(LAN)へ自動で接続するように設定したいのですが、どのようにすればよろしいのでしょうか? もしできるなら、HPとして設定しているページではなく、デスクトップ上に作ってある、とあるページのショートカットでの起動が望ましいのですが、それは無理でしょうか? 同時にデスクトップ上に保存してあるTEXTファイルもパソコン起動時に自動で開けたら嬉しいのですが、可能でしょうか?

このQ&Aのポイント
  • 小学生男子のスポ少で、ハーフパンツの中にインナーパンツ(スパッツ)を直穿きする家庭はあるのか
  • クラブでは選択制で、直穿きは少数派のようだが、うちの子供たちはトイレ後のブリーフパンツが濡れるため、直穿きを検討中
  • 直穿きの場合、陰部の感触や違和感についても共有してほしい
回答を見る

専門家に質問してみよう