• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:作業域が消える(ように見える))

作業域が消える(ように見える)

このQ&Aのポイント
  • 作業域が消えてしまう理由について教えてください。
  • rtnaで作成した作業域がrtnbで参照できない理由は何でしょうか。
  • 作業域のトレース方法について教えていただけますか。

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

  • ベストアンサー
  • zxcv0000
  • ベストアンサー率56% (111/196)
回答No.2

> $wk1は明示的に確保などしておらず、直接rtnaで作成しています。 この 1行の意味が致命的に重大です。 可能性1 ============================================ rtna 内で my $wk1 とか local $wk1 とか書いていれば、 rtnbからは見えません。 可能性2 ============================================ そうで無ければ、 両 rtn は、同じソースの同じ package 内ですか? 可能性3 ============================================ rtnb から$wk1が見えるはず状況であっても、rtnb内で my や local で $wk1 を定義すれば、やはり見えなくなります。 可能性4 ============================================ $wk1 がリファレンスの場合や $wk1 を参照するリファレンスがあると、あなた自身が意図せずに内容を書き換えるケースもあります。 上記いずれもハズれの場合や理解できない場合は、同じ問題が発生するできるだけ短い完全なコードを手間をかけて作って貼り付けてください。 # 完全とは、それだけで実行できる『Perlのソースとして完結したもの』です。 # できるだけ短いとは、せいぜい2~30行で。

nagahaha
質問者

お礼

細かく有り難うございました。 まさに可能性1のlocalを使っていました。 $wk8 = $wk1と移してやったら問題なく参照できました。 これまでにもlocalを使っていましたが、 今回のような経験は初めてです。 これまではlocalで作った作業域を外のsubで使うということが無かった ということだったのですね。 お世話になりました。

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

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

悪いけど, 「これでわかってくれ」という方が無理. $wk1 がどこでどのように参照されているかわからないので, 答えようがありません. 少なくとも $wk1 が出てくる行はすべて出すくらいのつもりで書いてください. 特に「$wk1は明示的に確保などしておらず、直接rtnaで作成しています。」と書いてあってもどのように「作成している」のかはあなた以外のだれにも理解できません. 「どのように作成しているのか」は確実に書いてください. もちろんいくつか推測はできて, 例えば ・実は rtnb→rtna の順に実行されていた ・rtna と rtnb でパッケージが違う ・rtna で my を使って $wk1 を使っていた とか考えられるけど, こうやって他人に推測させるような質問は大体良くないと思ってください.

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

関連するQ&A

  • ACCESSVBAで日付の表示を2007/12/31から2007年12月31日に変更したい

    ACCESSVBAでdate関数を使って、 ファイルを出力すると、 2007/12/31 のような表示になります。 2007年12月31日 の表示で出力させたいのですが、 どうしたらいいのでしょうか。 宜しくお願いします。 ***************作成したVBA*********** Private Sub test_Click() Dim fNAME As String fNAME = "c:\test.htm" Open fNAME For Output As #1 Print #1, "<html>" Print #1, "<head>" Print #1, "</head>" Print #1, "<body>" ****ここで日付を表示させる***** Print #1, "<p>" & Date & "</p>" … … Print #1, "</body>" Print #1, "</html>" Close #1 '閉じる End Sub

  • C#のコンボボックスからのカレンダ表示

    プラグラミング超初心者です。 C#で作業しているのですが、 コンボボックスからプルダウンし、カレンダーを表示してから 該当日付をコンボボックスに表示したいと思っています。 できれば、ロジックも記載して頂ければ助かります。 2005で作業しています。 どのようにすればよろしいか教えてください。 宜しくお願いします。

  • パーテーションマジックでの作業

    OSはWinXP。パーテーションマジックのフロッピーから起動し、全領域から20GBの領域を確保したいのですが、OS上で"20GB"と表示される領域にするにはフロッピー起動時に何GBで領域を作成すれば良いのでしょうか?過去に似たような作業をした記憶はありますが、確かOS上とは違った数字だったような気がします。

  • セル値のシート参照

    excel2010 セル値のシート参照がうまく動作しません。 構成は下記です。 ディスクトップにa.xlsmのファイル。シート名称はSheet1、シート計算は手動にしています。 Cドライブのtempフォルダにabc.xlsというファイルを登録しています。 C:\TEMP\abc.xls abc.xlsのファイルは、シート名称が(日付け)という構成です。 9/1だと(1)、9/23だと(23)の様になっています。 a.xlsmのファイルからマクロを使い、日付けに相当するシートを表示させようとしています。 a.xlsmのQ2セルには日付けのデータが入ります。表示形式は9/23みたく。 Q3セルは、="("&TEXT(Q2,"dd")*1&")" これで、日付けからabc.xlsファイルのシート名称を参照させる構成です。 作成したマクロは下記です Sub マクロからブックを開く2() Worksheets("Sheet1").Activate Dim t As String t = Range("Q3").Value Debug.Print t ’Q3セル値を更新させる為に計算実行 Calculate Workbooks.Open "C:\TEMP\abc.xls" Worksheets(t).Activate End Sub 上記だと、Q2セルの日付けを変えても1つ前の日付けで参照されます。 上記を2回そのまま実行すると正しく反映されます。 Debug.Print tでも更新されていないのが分かります。 なぜなのでしょうか? ちなみに、下記の様にマクロを分割すると、正しく表示されます。 Sub マクロからブックを開く() Worksheets("Sheet1").Activate Dim t As String t = Range("Q3").Value Debug.Print t Calculate cal End Sub Sub cal() Dim t As String t = Range("Q3").Value Debug.Print t Workbooks.Open "C:\TEMP\abc.xls" Worksheets(t).Activate 'Call カレントフォルダの表示 End Sub 上記の様に2つに分けると Debug.Print tで更新されていることが確認出来ます。 1つ目のマクロ マクロからブックを開く2 のおかしな内容の理由と対策内容を教えていただきたく、よろしくお願いします。

  • 指定した日付が、その月の第何週かを求める方法

    月曜から日曜の作業内容を 書く報告書作成画面の作成をしています。 処理の一つに、 作成したい週の月曜の年月日を入力し、 日曜までの日付を自動的に画面に出す、 というものがあります。 さらに自動的に出した日曜日の日付から、 報告書作成週はその月の第何週かを求める、 (今月ですと10/6は第1週、10/13は第2週、 10/20は第3週、10/27は第4週、となります) という処理を作成したいのですが、 良いロジックが思い浮かびません。 (処理する月の日付と曜日を配列に入れて、 ループカウントで第何週かを求める、という 方法は思いついたのですが、効率が悪いと思うので…) 何か良いロジックがありましたら、 書き込みをお願い致します。

  • hp更新作業ができません

    ウィンドウズ7を長い間使用してHPを更新していました。 使いやすいソフトなのでかなり古いですがHP作成ソフトは フロントページ2002をつかっていました。 この度パソコンが使えなくなりウィンドウズ10に変えましたが HPの更新作業ができません。 二つのHPを持っているので、互いに重複するところはコピィぺして 貼り付けていたのですが《いままでもそうでした》今回は 以下のテロップが出てきて更新されませんし、表示もされません。 更新作業ができずに大変困って悩んでいます。 どのように対応すればいいのでしょうか?どうぞよろしくお願いいたします。 FronPage Webのファイルにアクセス中にエラーが発生しました。 作成者ーWebサーバーに対して作成中の場合、このサーバーのサイトの Webmasterに連絡してください。詳細についてはサーバーのシステムログ を参照してください。

    • 締切済み
    • SEO
  • ファイル自動保存マクロ  件名「A1」+日付 作動

    エクセル 2007を使っています。 請求書管理で。ファイル自動保存マクロを作りましたが、問題があります。 「A1」セルを件名+日付でマクロにて、実行しますと、「A1」セルに「あいう」と手入力しますと問題なく作動します。          ファイル名 C*・・・・・¥あいう2009-10-19 何が原因かわかりませんので、お尋ねします。 A2;A4にセルの結合で顧客名を入力規則で表示してありそのデーターを 「A1」に(+A2)と数式をいれて、動かしても、止まってしまいます。 ・・・A1をコピー&値貼り付けをしても動きません    その後、手入力で作動しますと作動します。 何が原因でしょうか、 教えてください。 マクロ文を添付しております。 ボタン2は (コピー&値貼り付けです) ボタン3が、問題のわからない部分です。 よろしくお願いいたします、 Private Sub CommandButton2_Click() Range("A1:D58").Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False ActiveWindow.SelectedSheets.PrintOut Copies:=1 ' End Sub Private Sub CommandButton3_Click() Dim wk, wk2 As String wk2 = Date wk2 = Replace(wk2, "/", "-") wk = "C:\Users\fukushima\Documents\○○○\△△△\" & Cells(1, 1) & wk2 & ".xls" ActiveWorkbook.SaveAs fileName:=wk Application.Quit End Sub

  • Excel テーブルについて

    Excel2010を使用しています。 知人から受け取った表計算のテーブルが、どこを参照されているのかがわかりません。 使用されているテーブルはいくつかあり、そのうちの7つは数式タブの名前の管理から見つけ利用られるのですが、ある箇所のセルに参照がされているテーブル名が、その名前の管理にもでてこなくて、シート名にもありません。参照先のトレース、参照元のトレースをすると参照されている同一シート内のセルに矢印が表示され、参照されているテーブルマークにも矢印が表示されるのですが、その名前のテーブルを探してもどこにもみあたらないのです。 このテーブルの設定範囲を探すには、どのようにすれば見つかりますか? よろしくお願い致します。 この表の作成者と連絡がつかないので、こちらで質問させて頂きました。

  • デジカメプリントでの日付情報

    ネットでデジカメプリントを注文しようとしています。 プリントしたくない部分があったので、フォトショップでトリミングを行い、保存した写真がありますが、その写真を注文しようとすると、「日付情報なし」と表示され、日付をプリントすることが出来ません。 色々なフリーソフトなどでexif情報を参照すると、撮影日の情報はきちんと書き込まれていますし、日付も元のファイルのまま変更されていません。 また、exif情報を元のファイルからエクスポートし、トリミング後のファイルに書き込みしましたが、それでも「日付情報なし」と表示されてしまいます。 デジカメプリントでは、どこの情報を日付情報として読み込んでいるのでしょうか? 日付情報を修正することは出来ませんでしょうか? よろしくお願いいたします。

  • 循環参照ツールの使用方法

    エクセルは全くの初心者です。よろしくお願いします。単純な+-の合計をする計算の表を作成し、縦横(列、行)の計算をしていました。計算する列行の欄には空白もあります。次回にこの表を開いたところ「循環参照しています」との表示が出てステータスバーに循環:V4と表示されました。 ヘルプを参照して、循環参照ツールを出しましたが、循環参照の欄の下に$V$4右端には「参照先のトレース」「参照元のトレース」「全てのトレース矢印を削除」とかありますが、このエラーメッセージを削除する方法が全く分かりません。ヘルプを参照すると数式を修正しなさいと書いていますが数式には=SUM(B4:W4)と表示されていますがW4には数字は何もありません。このエラーメッセージの消去方法と数式の修正方法の手順を教えてください。ヘルプを何回呼んでも理解できませんし、なぜこうなったのかもわかりません。よろしくお願いします。