前回告知した通り、WIndows 11に標準でついてくるMSBuild.exeを使うスタンドアローンのウィンドウプログラムを作ります。

【Disclaimer】

尚、前回も書きましたが、このプログラムの機能は「短いバッチ処理プログラム」と変わらず、余り大したことをしないので期待しないでください...(汗;)

 

先ず(これはBCCForm and BCCDSkeltonからの私のプログラミング作法なんですが)、

(1)完成形をイメージして、

(2)必要なリソースを作成し、

(3)ドンガラ(スケルトン)を作ってから、

(4)必要な実体的機能を実装します。

 

今回は(1)~(3)までをやりましょう。

先ずは「完成形」ですが、こんな感じ。単なるツールバー、ステータスバー付きのSDI(SDI - Single Document Interface)ウィンドウです。クライアントエリアにはエディットボックス(TextBoxクラスコントロール)を貼りつけておきます。

 

 

この完成形で使うC#のリソースはツールバービットマップと(システム)アイコンであり、前者はBCCForm and BCCSkeltonパッケージのサンプルビットマップとTBEditorツールを使い、

 

 

↑ようにし、後者は自作C#アイコンにしました。(アイコンであればなんでも結構です。)

 

そしてドンガラ(SDIスケルトン)のコーディングです。いつものようにコメント解説:で説明します。

 

【MSBuilder.cs】

///////////////////////////////
// MSBuilder.cs
// that calls and uses MSBuild
// Copyright (c) 2025 by ysama
///////////////////////////////

using System;
using System.Windows.Forms;
using System.Drawing;
using System.Reflection;                //Assemblyを使う為
using System.Resources;                    //リソース関係クラス等の使用の為
using System.IO;                        //File.ReadAllTextとFileStream使用の為
using System.Text;                      //Encoding.GetEncoding使用の為
using System.Text.RegularExpressions;    //Regex.Splitを使用の為
using System.Diagnostics;                //Process使用の為

namespace MSBuilder
{
    public class MSB : Form    //解説:Formクラスから派生させる
    {
        //クラスメンバー変数
        string MSBPath = @"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\";    //MSBuild.exeへのパス既定値
        string TargetFile = "";                        //ビルドするcsprojまたはslnファイル名(初期値は空文、以下同じ)
        string MSBSwitch = "";                        //MSBuildのスイッチ文
        string MSBDataFile = "";                    //MSBuilderのデータファイル(*.msb)
        //クラスコントロール変数
        ToolStrip toolStrip;                        //ツールバー
        ToolStripButton[] toolStripButton;            //ツールバーボタン
        StatusStrip statusStrip;                    //ステータスバー
        ToolStripStatusLabel[] tssl;                //ステータスバーラベル
        TextBox txtBox;                                //出力用テキストボックス

        [STAThread]    //解説:忘れずに...
        public static void Main()                    //エントリーポイント
        {
            Application.Run(new MSB());
        }

        public MSB()                                //コンストラクター
        {
            Assembly myOwn = Assembly.GetEntryAssembly();
            this.Icon = Icon.ExtractAssociatedIcon(myOwn.Location);    //プログラムアイコンをフォームにつける
            this.Size = new Size(640, 480);
            this.MinimumSize = new Size(320, 190);
            this.Text = "MSBuilder";
            this.Load += MSB_Load;
        }

        private void MSB_Load(object sender, EventArgs e)
        {
            //フォームのレイアウトを一時停止
            this.SuspendLayout();
            //メインメニュー作成
            MainMenu menu = new MainMenu();
            Menu = menu;
            //メインメニューアイテム付加
            MenuItem miFile = new MenuItem();        //「ファイル」メニュー
            miFile.Text = "ファイル(&F)";
            miFile.Index = 0;
            menu.MenuItems.Add(miFile);
            MenuItem miBuild = new MenuItem();        //「ビルド」メニュー
            miBuild.Text = "ビルド(&B)";
            miBuild.Index = 1;
            menu.MenuItems.Add(miBuild);
            MenuItem miHelp = new MenuItem();        //「ヘルプ」メニュー
            miHelp.Text = "ヘルプ(&H)";
            miHelp.Index = 2;
            menu.MenuItems.Add(miHelp);
            //サブメニューアイテム付加
            MenuItem miOpen = new MenuItem();        //「開く」メニューアイテム
            miOpen.Text = "開く(&O)";
            miOpen.Index = 0;
            miOpen.Click += OnOpen_Click;
            miOpen.Shortcut = Shortcut.CtrlO;
            miFile.MenuItems.Add(miOpen);
            MenuItem miSave = new MenuItem();        //「保存」メニューアイテム
            miSave.Text = "保存(&S)";
            miSave.Index = 1;
            miSave.Click += OnSave_Click;
            miSave.Shortcut = Shortcut.CtrlS;
            miFile.MenuItems.Add(miSave);
            miFile.MenuItems.Add("-");                //セパレーター
            MenuItem miSetUp = new MenuItem();        //「設定」メニューアイテム
            miSetUp.Text = "設定(&U)";
            miSetUp.Index = 2;
            miSetUp.Click += OnSetUp_Click;
            miSetUp.Shortcut = Shortcut.CtrlU;
            miFile.MenuItems.Add(miSetUp);
            miFile.MenuItems.Add("-");                //セパレーター
            MenuItem miExit = new MenuItem();        //「終了」メニューアイテム
            miExit.Text = "終了(&X)";
            miExit.Index = 3;
            miExit.Click += OnExit_Click;
            miExit.Shortcut = Shortcut.CtrlX;
            miFile.MenuItems.Add(miExit);
            MenuItem miSwitch = new MenuItem();        //「スイッチ」メニューアイテム
            miSwitch.Text = "スイッチ(&W)";
            miSwitch.Index = 0;
            miSwitch.Click += OnSwitch_Click;
            miSwitch.Shortcut = Shortcut.CtrlW;
            miBuild.MenuItems.Add(miSwitch);
            MenuItem miExec = new MenuItem();        //「実行」メニューアイテム
            miExec.Text = "実行(&E)";
            miExec.Index = 1;
            miExec.Click += OnExec_Click;
            miExec.Shortcut = Shortcut.CtrlE;
            miBuild.MenuItems.Add(miExec);
            MenuItem miHowtoUse = new MenuItem();    //「使い方」メニューアイテム
            miHowtoUse.Text = "使い方(&U)";
            miHowtoUse.Index = 0;
            miHowtoUse.Click += OnHowtoUse_Click;
            miHelp.MenuItems.Add(miHowtoUse);
            MenuItem miVer = new MenuItem();        //「バージョン」メニューアイテム
            miVer.Text = "バージョン(&N)";
            miVer.Index = 1;
            miVer.Click += OnVersion_Click;
            miVer.Shortcut = Shortcut.CtrlN;
            miHelp.MenuItems.Add(miVer);

            //ツールバーとステータスバーの設定
            //ToolStripクラスインスタンスの生成

            this.toolStrip = new ToolStrip();
            //ツールバーのレイアウトを一時停止
            this.toolStrip.SuspendLayout();
            //ToolStripButton配列を作成
            this.toolStripButton = new ToolStripButton[6];
            //本プログラムの埋め込みリソースのリソースマネージャーを作成
            Assembly asm = Assembly.GetExecutingAssembly();
            ResourceManager rm = new ResourceManager("MSBuilder", asm);
            //ツールバービットマップの読み込み
            ImageList imgList = new ImageList();
            imgList.ImageSize = new Size(16, 15);
            imgList.Images.AddStrip((Bitmap)rm.GetObject("ToolBar"));
            imgList.TransparentColor = Color.White;
            //ToolStripButton[0]を作成
            this.toolStripButton[0] = new ToolStripButton();
            this.toolStripButton[0].Text = "開く(&O)";                                //テキスト設定
            this.toolStripButton[0].Image = (Bitmap)imgList.Images[0];                //画像設定
            this.toolStripButton[0].DisplayStyle = ToolStripItemDisplayStyle.Image;    //画像表示のみ
            this.toolStripButton[0].Click += OnOpen_Click;                            //Clickイベントハンドラ追加
            this.toolStrip.Items.Add(this.toolStripButton[0]);                        //ボタンを追加
            //ToolStripButton[1]を作成
            this.toolStripButton[1] = new ToolStripButton();
            this.toolStripButton[1].Text = "保存(&S)";                                //テキスト設定
            this.toolStripButton[1].Image = (Bitmap)imgList.Images[1];                //画像設定
            this.toolStripButton[1].DisplayStyle = ToolStripItemDisplayStyle.Image;    //画像表示のみ
            this.toolStripButton[1].Click += OnSave_Click;                            //Clickイベントハンドラ追加
            this.toolStrip.Items.Add(this.toolStripButton[1]);                        //ボタンを追加
            //セパレーターを挿入
            this.toolStrip.Items.Add(new ToolStripSeparator());
            //ToolStripButton[2]を作成
            this.toolStripButton[2] = new ToolStripButton();
            this.toolStripButton[2].Text = "終了(&X)";                                //テキスト設定
            this.toolStripButton[2].Image = (Bitmap)imgList.Images[2];                //画像設定
            this.toolStripButton[2].DisplayStyle = ToolStripItemDisplayStyle.Image;    //画像表示のみ
            this.toolStripButton[2].Click += OnExit_Click;                            //Clickイベントハンドラ追加
            this.toolStrip.Items.Add(this.toolStripButton[2]);                        //ボタンを追加
            //セパレーターを挿入
            this.toolStrip.Items.Add(new ToolStripSeparator());
            //ToolStripButton[3]を作成
            this.toolStripButton[3] = new ToolStripButton();
            this.toolStripButton[3].Text = "実行(&E)";                                //テキスト設定
            this.toolStripButton[3].Image = (Bitmap)imgList.Images[3];                //画像設定
            this.toolStripButton[3].DisplayStyle = ToolStripItemDisplayStyle.Image;    //画像表示のみ
            this.toolStripButton[3].Click += OnExec_Click;                            //Clickイベントハンドラ追加
            this.toolStrip.Items.Add(this.toolStripButton[3]);                        //ボタンを追加
            //セパレーターを挿入
            this.toolStrip.Items.Add(new ToolStripSeparator());
            //ToolStripButton[4]を作成
            this.toolStripButton[4] = new ToolStripButton();
            this.toolStripButton[4].Text = "使い方(&U)";                            //テキスト設定
            this.toolStripButton[4].Image = (Bitmap)imgList.Images[4];                //画像設定
            this.toolStripButton[4].DisplayStyle = ToolStripItemDisplayStyle.Image;    //画像表示のみ
            this.toolStripButton[4].Click += OnHowtoUse_Click;                        //Clickイベントハンドラ追加
            this.toolStrip.Items.Add(this.toolStripButton[4]);                        //ボタンを追加
            //ToolStripButton[5]を作成
            this.toolStripButton[5] = new ToolStripButton();
            this.toolStripButton[5].Text = "バージョン情報(&V)";                    //テキスト設定
            this.toolStripButton[5].Image = (Bitmap)imgList.Images[5];                //画像設定
            this.toolStripButton[5].DisplayStyle = ToolStripItemDisplayStyle.Image;    //画像表示のみ
            this.toolStripButton[5].Click += OnVersion_Click;                        //Clickイベントハンドラ追加
            this.toolStrip.Items.Add(this.toolStripButton[5]);                        //ボタンを追加
            //ツールバーの設定
            this.Controls.Add(this.toolStrip);
            //ツールバーのレイアウトを再開
            this.toolStrip.ResumeLayout(false);
            this.toolStrip.PerformLayout();

            //StatusStripクラスインスタンスの生成
            this.statusStrip = new StatusStrip();
            //ステータスバーにパネルとテキストを追加
            tssl = new ToolStripStatusLabel[2];
            tssl[0] = new ToolStripStatusLabel();
            tssl[0].BorderSides = ToolStripStatusLabelBorderSides.All;
            tssl[0].BorderStyle = Border3DStyle.SunkenInner;
            tssl[0].BackColor = SystemColors.Control;
            tssl[0].Text = "MSBuilder Ver. 1.0";
            tssl[0].AutoSize = true;
            tssl[0].TextAlign = ContentAlignment.MiddleLeft;
            tssl[1] = new ToolStripStatusLabel();
            tssl[1].BorderSides = ToolStripStatusLabelBorderSides.All;
            tssl[1].BorderStyle = Border3DStyle.SunkenInner;
            tssl[1].BackColor = SystemColors.Control;
            tssl[1].TextAlign = ContentAlignment.MiddleLeft;
            tssl[1].Text = "(ビルドするファイル名)";
            tssl[1].ToolTipText = "(ビルドするファイル名)";        //ToolTip設定
            tssl[1].Spring = true;
            statusStrip.Items.AddRange(tssl);
            statusStrip.ShowItemToolTips = true;                    //ToolTip表示
            this.Controls.Add(this.statusStrip);                    //StatusStrip(ステータスバー)を追加

            //出力用テキストボックス
            txtBox = new TextBox();
            //位置(解説:ツールバーの高さだけ調整する)
            txtBox.Location = new Point(0, this.toolStrip.Height);
            //サイズ(解説:ツールバー、ステータスバーの高さだけ調整する)
            txtBox.Width = ClientSize.Width;
            txtBox.Height = ClientSize.Height - this.toolStrip.Height - this.statusStrip.Height;
            //アンカー(解説:左上と右下で全体がウィンドウサイズの変化につれて変化する)
            txtBox.Anchor = (AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Bottom | AnchorStyles.Right);
            //その他プロパティ(解説:複数行表示で、折り返しなくスクロールバー付きにする)
            txtBox.AcceptsReturn = true;
            txtBox.AcceptsTab = true;
            txtBox.Multiline = true;
            txtBox.ScrollBars = ScrollBars.Both;
            txtBox.WordWrap  = false;
            //FormにTextBoxを追加
            this.Controls.Add(txtBox);

            //メインフォームのレイアウトを再開
            this.ResumeLayout(false);
            this.PerformLayout();
        }

        //終了処理
        protected override void OnFormClosing(FormClosingEventArgs e)
        {
            base.OnFormClosing(e);    //解説:標準処理をそのまま残す
            DialogResult dr = MessageBox.Show("終了しますか?", "確認", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
            if(dr == DialogResult.No)
            {
                e.Cancel = true;
            }
        }

        //「ファイルを開く」処理
        private void OnOpen_Click(object sender, EventArgs e)
        {
            MessageBox.Show("ゴメンナサイ。まだできていません。", "工事中", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
        }

        //「保存」処理
        private void OnSave_Click(object sender, EventArgs e)
        {
            MessageBox.Show("ゴメンナサイ。まだできていません。", "工事中", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
        }

        //「設定」処理
        private void OnSetUp_Click(object sender, EventArgs e)
        {
            MessageBox.Show("ゴメンナサイ。まだできていません。", "工事中", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
        }

        //「終了」処理
        private void OnExit_Click(object sender, EventArgs e)
        {
            Close();    //修了確認はOnClosingメソッドで行う
        }

        //「スイッチ」処理
        private void OnSwitch_Click(object sender, EventArgs e)
        {
            MessageBox.Show("ゴメンナサイ。まだできていません。", "工事中", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
        }

        //「実行」処理
        private void OnExec_Click(object sender, EventArgs e)
        {
            MessageBox.Show("ゴメンナサイ。まだできていません。", "工事中", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
        }

        //「使い方」処理
        private void OnHowtoUse_Click(object sender, EventArgs e)
        {
            MessageBox.Show("ゴメンナサイ。まだできていません。", "工事中", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
        }

        //「バージョン」処理
        private void OnVersion_Click(object sender, EventArgs e)
        {
            VersionDlg verDlg = new VersionDlg(this.Icon);    //Versionダイアログ表示
            verDlg.ShowDialog();
            verDlg.Dispose();
        }
    }

    /////////////////////
    //Version ダイアログ
    /////////////////////

    class VersionDlg : Form
    {
        public VersionDlg(Icon ico)
        {
            //ダイアログの属性設定
            this.Text = "バーション情報";
            this.ClientSize = new Size(320, 100);
            this.MaximizeBox = false;        // 最大化ボタン
            this.MinimizeBox = false;        // 最小化ボタン
            this.ShowInTaskbar = false;        //タスクバー上表示
            this.FormBorderStyle = FormBorderStyle.FixedDialog;        // 境界のスタイル
            this.StartPosition = FormStartPosition.CenterParent;    // 親フォームの中央に配置
            //コントロールの属性設定
            Button btnOK = new Button();
            btnOK.Size = new Size(40, 28);
            btnOK.Location = new Point(ClientSize.Width - btnOK.Width - 10, (ClientSize.Height - btnOK.Height) / 2);
            btnOK.Font = new Font("Times New Roman", 10, FontStyle.Bold);
            btnOK.Text = "OK";
            btnOK.Click += new EventHandler(OnOK_Click);
            Label imglabel = new Label();
            imglabel.Size = new Size(40, 40);
            imglabel.Location = new Point(10, (ClientSize.Height - imglabel.Height) / 2);
            imglabel.BorderStyle = BorderStyle.Fixed3D;
            imglabel.Image = ico.ToBitmap();                        //親のシステムアイコン
            Label label = new Label();
            label.Size = new Size(ClientSize.Width - imglabel.Width - btnOK.Width - 40, ClientSize.Height- 20);
            label.Location = new Point(imglabel.Width + 20, (ClientSize.Height - label.Height) / 2);
            label.BorderStyle = BorderStyle.Fixed3D;
            label.Text = "MSBuilder Version 1.0\r\nCopyright (c) 2025 by Ysama\r\n(written in Microsoft C#)";
            label.TextAlign = ContentAlignment.MiddleCenter;
            label.Font = new Font("Times New Roman", 10, FontStyle.Bold);
            this.Controls.Add(btnOK);
            this.Controls.Add(imglabel);
            this.Controls.Add(label);
        }

        private void OnOK_Click(object sender, EventArgs e)
        {
            Close();
        }
    }
}

 

この「ドンガラ」は"SDISkelton.cs"とでもして持っていると、次からSDIウィンドウのスケルトンをコーディングする必要がなくなりますね。(その発想がBCCForm and BCCSkeltonの存在意義だったのですが...因みに、この「ドンガラ」状態でもウィンドウにテキストを書いて、表示させることが出来ます。)

 

では、次回にこのプログラムに、

(1)ビルド用ファイル(*.csprojや*.sln)を読み込ませ、ウィンドウに表示させる。

(2)MSBuildのオプション(スイッチ文)を与えてビルド(MSBuild.exeを実行)する。

(3)上記(1)、(2)のファイルパスとスイッチ文を保存、読み込みできるようにする。

(4)スイッチ文入力用にダイアログを作成する。

(5)使い方のヘルプを表示する。

というようなメイン、サブの機能を追加してゆきます。

 

それでは、また。

So long.

再見。

또 봐요(トボァヨ)。

 

と、

 

いうほどの大したことはしていませんが、久々にC#で悪戯をしてみましたのでご紹介します。

 

私は偏屈なので、未だに最新のVisual Studio Community版を使わず、Windows 11に標準装備された.Net Framework時代のC#コンパイラー(csc.exe)を自作のMSCompAssMicrosoft Compiler Assistance)を使ってプログラミングをしていますが、ウェブ上にあるC#のサンプルプログラムはほぼ100%、Visual Studio用のものになっており、MSCompAssではビルドできないものばかりです。

 

だから諦めてしまう

 

のは、へその曲がった私のやり方ではないので、そのようなC#のプロジェクト(*.csprojファイル)またはソリューション(*.slnファイル)はMicrosoft様がこれもWindows 11に標準装備()してくれた

 

MSBuild.exe

 

を使ってビルドしちゃいます。

:Windows 11の@"C:\Windows\Microsoft.NET\Framework64(<64bit>またはFramework<32bit>)\v4.0.30319\MSBuild.exe"をご確認ください。

 

このMSBuild.exe(wiki)、Visual Studio(Microsoft MSBuild)では色々とスイッチを使って様々に制御すると思われますが、トーシローの私には「ビルドするだけで充分」であり、そのような場合、

 

ターゲットファイル(*.csproj | *.sln)のあるフォールダーでMSBuildを実行するだけでよい

 

という簡便さです。

 

その故、今まではお札(ふだ)のようにバッチファイルを使っていた

 

のですが、

 

「そうだっ、(csc.exeを使うスタンドアロンのMSCompAssの様に)MSBuildを使うスタンドアロンのプログラムを作ろうっ!

 

と思い立ちました。

:私のバッチファイル(Build.bat)をご参考までに。

        ECHO OFF
        ECHO ----------------------------------
        ECHO  MSBuildを起動します。
        ECHO  C#の場合、*.csprojファイルのある
        ECHO  フォールダーで実行してください。
        ECHO ----------------------------------
        "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe"
        pause

 

ということで、C#でSDI Formベースでチャチャっと作ってみました。

 

一応webでダウンロードしたサンプルなどに使ってみて大丈夫そうなので、本日BCCForm and BCCSkeltonパッケージのSampleBCCSkelton→Debug→Sampleフォールダーに入れてアップしておきました。

 

ご興味があればどーぞ。(これの解説を一回入れますが...)

 

【Psycho】シリーズの最後を飾る、半世紀前の我がAdlescence(思春期)において嵌った「フロイトと精神分析」、それを再考してみようというシリーズ

 

 

 

 

 

のテーマも大分少なくなってきました。今回は↑の様に今まで見てきたフロイトの天才性、即ち「内省力(帰納)と着想(演繹)」が導いていった「タナトス(デストルドー)を取り上げます。

 

「タナトス」とは、それまでのフロイトが信じていた生(種としては性)のエネルギーである「エロス(リビドーー生の本能)」に反する「タナトス(デストルドー-死の本能)」という概念であり、それは彼の第一次大戦後の臨床経験から生まれます。

通常、自分が確立していた理論体系に根本から反する概念の導入は抵抗があるものですが、彼は何故自死や自傷が起こりえるのかという問題を前にして「エロス」のみの一元論から「エロス対タナトス」という二元論へ飛躍します。(注)

注:「フロイトは第一次世界大戦後、戦争神経症の患者を多数診察することになった。その折、1920年に親しくしていた弟子フォン・フロイントが亡くなり、その数日後にも娘ゾフィーが亡くなった。大戦に続くこの不幸が「死の欲動(デストルドー)」の着想として重くのしかかり、患者の精神分析の結果と合わせて同年に『快感原則の彼岸』として形を成した。1921年になると動悸や頻脈に苦しむようになり、暗い死の思いにとらわれるようになった。その中で、またしても身内がこの世を去ってしまう。1922年に姪がベロナールを服用して死亡し、翌1923年6月には娘ゾフィーの息子である孫ハイネルレが粟粒結核で5歳に満たぬまま死んだ。」(wiki「フロイト」)

 

一方、「タナトス(死の本能)」というのは正しくなく、本質は「攻撃性(自死や自傷はそれが内向した場合の現象)」という批判もありますが、いずれにせよ

 

検証できないものにむきになる必要はなく、

それ(自死や自傷に向かわせる欲動)がない、と仮定することが不都合、不合理なら、取り合えず「仮定」しておけばよい

 

のだと思います。(実際、これがあろうが無かろうが臨床現場で困ることはない。)

 

寧ろ、

 

これは精神分析全般に当て嵌まることですが、この人間の精神心理に対する内省によって得られた概念が「一般健常者に腑に落ちる概念」であり、「文芸に与える影響」は大きかった(フロイトが「タナトス」という言葉を広めたので、web上でもゲーム関連等でこのunfamiliarな言葉が簡単に引っ掛かりますから)、というのが最大の功績であるかもしれません。

 

風邪っぴきで胃腸炎という酷い目に遭い、体重も3kg減りましたが、その後リバウンドしてきました。(悪い意味ではなく、私の身体のバランスに戻ってきたということです。)いずれにせよ(61kg→)57.9kg→58.8kg→

 

58.0kg(体脂肪11.5%)迄、書きましたが、

 

その後、(矢張り体操、朝食の支度、40分ウォーキング、入浴後)朝はサラダと一口ご飯に山形の「だし」(ここのところ気に入って食べています)、昼は板麺もどき(注1)、夜は(昼に来客が持ってきた)ソーセージパンとサンドイッチ一切れを摘みにDewars12のハイボール(注2)。

注1:「板麺(バンミェン)」とは、私がシンガポール駐在時代に一回嵌り、当時職場の隣にあった「ラオパサ」というホーカーズで一時期「週5回」昼飯に食べていた麺料理です。その味を再現しようと、うどんベースですが、スープの出しを「魚介(煮干しイワシ)+椎茸」出汁に具材(今回は豚肉団子、玉葱、長ネギ、ほうれん草)の旨味、味付けは塩のみにして作りました。当時の味は再現できませんでしたが、優しく上品な塩味の麺にはなりましたよ。

注2:(昔はJohnny Walker Swingなどが好きでしたが)33歳の時からスコッチは(色々と浮気を重ねながら)基本この銘柄を飲んでいます。現在は12年物に「只の炭酸水」を使ったハイボールが好きで、それ以外は飲みません。

 

翌朝は日曜でウォーキングはお休み。朝食の支度、入浴後

 

59.5kg(体脂肪11.5%)

 

といよいよ大台に近づき、(ビビったので)朝食はサラダだけ。昼はおにぎり非音つくらいのご飯に冷凍のサバ味噌を湯煎して、法蓮草のお浸しと春玉葱のオニオンスライス、モヤシと葱の味噌汁と頂きます。夜もカロリーの高い摘みを避け、350mlビールにナッツ、日本酒一合と当り目(+七味唐辛子マヨ)の後、冷やし細うどんに狐卵閉じ(かつ丼の具が油揚げになったもの)でフィニッシュ。

 

そして、今朝は...

 

60kg(体脂肪11.5%)

 

と大台に入ったので、この報告は終了します。(私的には体脂肪が12.0%あったので、これがリバウンドすることの方が怖い。)

 

こういうことで、61kgあった体重が57.9kgに減少したことを書きました。

 

その後回復し、二日後に昼は粥、夜は鶏むね肉の生姜醤油漬けを焼いてしっかり食べましたので、翌朝はこう(58.8kg)なりました。

 

昨日は朝はサラダ(これは25年間、毎朝大皿で食べています)、昼は税務署に出かけたので鮭弁当、夜は「冷や奴」「油揚げとモヤシのポン酢和え」「生揚げ焼」に350ml缶ビールとお酒1合で、今朝(矢張り体操、朝食の支度、40分ウォーキング、入浴後)は

 

58.0kg

 

とまだ頑張っています。

 

 

ただ、それだけ...

”Out of blue”(突然の)胃腸炎で寝込みましたが、7種の薬で体調は回復し、昨日は昼と夜を食べることが出来ました。(

前回参照。なお、今朝入浴後体重を図ってみたら、約1kg増の58.8kgでした。See? 「簡単に減るものは簡単に増える。」

 

昨晩も早寝し、今朝も快調に起床したので、毎朝の体操の後、ルーティーンの朝食を作り、休んでいた 1H ウォーキングに行きました。(, which my wife didn't recommend.)そして何とか、(二日寝てばかりいたので、体力的には結構しんどかったのですが)無事道程を消化し、帰還いたしました。

 

さて、体調が回復したら、懸案の神様の父親(義父)に関わる相続税の申告です。胃腸炎の症状の出た4月22日に最終の口座残高情報が届いたので、必要な書類を完成させ、申告書作成ソフト(「AI相続」)に最後のデータを入力し、申告書を作成しました。

 

「何時でも税務署に行けるよ」というと、「じゃ、善は急げ、というから」ということで、本日神様と税務署を訪問、無事相続税申告書を提出してきました。(

:確定申告と同じように、相続税申告も申告書の提出だけで、証憑書類は一切提出しませんので、どのように税務署が申告書のチェックを行うのか、私的には興味があります。「必要ヶ所への記入があるか?」「内部情報相互に矛盾や齟齬が無いか?」「申告遺産価格に対して税額は合理的か?」というようなチェックでしょうか?書かれたデータを検証する裏付け書類は提出していないので、固定資産データとか預金データとかを一応確認するのでしょうか?分かりません...

 

また面白いのは、「窓口で申告書を出すとその後どうなるのか」は国税庁や税務署のサイトでは分かりませんので、為念聴きました。すると、

 

「先ず相続税を払っていただきます。そして何か不備等があればこちらから連絡します。」

 

とのこと。なんか、拍子抜けしましたが、まぁ、

 

これにて一件落着!

 

なお、今回私がやったのは義父の相続(「一次相続」)に関わる登記、相続税申告業務のみならず、今後発生する義母の相続(「二次相続」)に関わる契約、登記業務を含みます。これだけではよく分からないと思いますので、具体的に以下に列挙します。

 

【一次相続関連】

(1)総ての相続に関わる人、モノ、金に関わる「相続情報マスター」情報の作成(スプレッドシート)→データはコピーせず、マスターのデータを参照するようにすると、関連する文書の表記がマスターの交信で一遍にアップデートできるし、コピーしてアップデートし忘れによる不一致リスクがなくなります。

(2)財産目録の作成→先ずは総ての資産を洗い出して、資産区分、資産ID(不動産の表題や金融機関預金口座)、相続時価額(被相続人の死亡時の評価額・・・土地は路線価格、建物は固定資産価格、預金などは残高証明で既経過利息等を確認する等)

(3)相続税計算シミュレーターの作成→相続人は配偶者と子しかいないので、それに応じた相続税計算モデル(矢張りスプレッドシート)を作成し、「誰に何・いくらを相続させるか」を様々に試してみて、相続人の理解と合意を成立させる。

(4)遺産分割協議書の作成→(3)の基本合意に基づき、遺産分割協議書(合意があれば被相続人の遺言に優先します)を作成しますが、上記(2)が完全でないと面倒なことになります。事実今回も後で定期口座が見つかり、再度(2)(3)を繰り返して(「遺産分割協議書」の特約の性格で)「追加分割協議書」を作成しました。

(5)不動産の相続登記申請書作成と登記所における登記申請→不動産登記実務は昔結構やったので、司法書士には委任せず、遺産分割の合意内容に基づいて土地、建物総て所有権移転登記申請書を作成し、登記所(法務局・出張所)にて申請しました。

(6)相続関係説明図の作成→これは上記(5)の申請の際に求められる付属書類としての図ですが、私は「相続工房4」というフリーソフトを持っていたので、それで作成しました。

(7)相続税申告書の作成→実はこれが一番大変でした。私は日本の税務は実務経験が無く、最初「国税庁に確定申告と同じような入力サイトがあるのかな?」と思って確認した所、なんとPDFのブランク帳票がダウンロードできるだけで、その数も14、5に上ります。又(これが一番厄介な)帳票の記載要領が分厚く、それだけで心が折れます。そんな訳で「手っ取り早い、相続税申告書作成フリーソフトを探そう!」ということでチェックした所、一つだけ見つかったのが上記「AI相続」でした。一応セキュリティ廻りの確認を行い、データ保護は適切と考えたので、相続情報マスターに入っている情報を逐次入力し、最終の出来上がり(PDF出力)を出してみて、「うん、これなら十分行けるっ!」ということで、この「ソフトを使った申告書の作成」方針を決定しました。

 

【二次相続関連】

<背景>一次相続手続きを行う中で、相続税減免の特例として「小規模宅地に関わる特例」があることが判りました。これは被相続人と同居<所得税基本通達 2-47>または「家なき子」の関係がある親族の場合、相続される土地の価額を「20%に圧縮する(80%控除)」ことが出来る特例です。(私等が現実にそうであった)これに関わる所謂「区分所有建物の二世帯住宅」問題は、区分所有登記を解消するか方法がなく、誰に建物の所有権を持たせるかの検討を経て、最終的に被相続人の建物を相続する被相続人の配偶者に他の区分所有建物を売却し、区分所有建物を合併登記することにしました。

(8)区分所有建物売買契約書の作成、契約締結、代金支払い、領収書発行→上記の「他の区分所有建物」を被相続人の配偶者に売却する契約書で、売買代金の領収書も支払い時に発行しました。なお、これらは共に収入印紙が必要です。

(9)区分所有建物所有権移転登記申請書→上記(8)の契約に基づき、原因を「売買」とする所有権移転登記申請書を作成し、登記所で申請します。上記(5)と同時に申請しました。

(10)合併登記申請委任状→区分所有建物の所有権が共に配偶者となった時点で、標題登記を扱う土地家屋調査士へ合併登記を委任します。(甲区登記と違い、これはテクニカルなので自分では行わないこととしました。)これも今回の胃腸炎が発症した日に完了しています。

 

残るは、相続人による(そして私には全く利害関係のない)

 

相続税の支払い

 

のみなので、それは神様にやってもらうことにします。(当たり前ですが...

:尚、上記業務を税理士に委任する場合、報酬(費用実費は別)は「100万円」(これは某税理士事務所からの見積額)、登記業務(土地、建物の相続登記と他の建物の所有権移転登記の3件)を司法書士に委任すると「30万円」程度かかります。今日、神様にこれを説明し、「僕も少しは役に立つでしょ?」と言ったら、タリーズでコーヒーをごちそうしてもらいました。(泣;)

 

本文は【食い物話】...やっと回復を参照のこと。

 

第1パラの注で

 

注:本日の昼からおかゆに入りたいと思います。

 

と書きましたが、これもついでにネタにします。

 

2025年04月22日に発症し、よく23日は7種類の薬が効いて今日(24日)昼食が食べられるようになりました。ということで、定番の

 

粥。

 

しかし、単なる粥では面白みに欠けるので昔大好きだった台湾のホテルの朝バッフェで食べた中華粥を思い出してトライしてみました。お菜には(朝作ったのですが食べられなかった)豆腐チャンプルーと卵焼きに(これも定番の)梅干し、野沢菜を添えて。

 

 

しっかり完食出来たので確実に回復しています。

 

所で当時私が台湾に行く際に常宿としていた、その「台湾のホテル」。もう20数年以上も経っているのでwebで検索しても日本のツーリストサイトにはそれらしきものが見当たりません。

 

しかし、神はいるものでweb検索中に突然「頭の中に名前」が降ってきました。

 

Taiwan Howard Hotel(台湾福華飯店)

 

余り日本人ツーリストには使われていないようです。

 

また、web検索序に台湾のお粥についても調べてみました。

 

【台湾のお粥の特徴】

  • トッピング:

    紅糟肉(紅糟肉)や、エビ、カキ、豆腐の揚げ物などが人気です。(解説:朝バッフェトいうこと(寧ろ二日酔いということ)もあり、私は余りのっけませんでしたね。

  • その他:

    油條(中華風揚げパン)と一緒に食べることも多いです。(解説:これは食べませんでしたが「何か油揚げ的なものが載っている」こと鮮明に覚えています。ということで、今回はイメージから日本の「油揚げ」を代用しました。後でこれが何か調べるために行ったレシピサイトでもそのように調理しているみたいです。

  • 出汁の種類:

    台湾北部では豚骨、南部では魚の骨で出汁を取ることが一般的です。

 

Objection, your HONOR!

 

これだけは言えます。僕が好きだったのは「鶏ガラ出汁」

 

Nothing more or less than that!!!!

ps.  但し、本日作った鳥ガラ出汁のスープは、矢張りHoward Hotelのそれとは"far from it"でしたが。(笑)

 

(実は3回しか書いていない)この【食い物話】シリーズですが、今回は意に反して5回断食()したという食い物について。

:本日の昼からおかゆに入りたいと思います。

 

私は無類の麵好きで、国外なら長物パスタやフォー等、和では日本蕎麦は勿論、うどん、冷や麦、(そして今回のテーマとなる)素麺等、「麺」と言われるとなんでも食べてみたいと思っています。(

:米国駐在の時は、基本パスタ(I don't recommend those in the west but in the east)しかありませんが、シンガポール駐在の時は堪能しました。今でも記憶に残るのが、①台湾の牛肉麺(ニューローメン)の辛いやつ、②中国(訪問地は上海)は基本白いうどん的なものなので汁麺もよいですが炒麺の方がおいしいかな、③香港の香港麺(ホンコンミー)は日本の縮れ麺のようでなんでも美味しいです、④ベトナムは矢張phoでしょうね、⑤タイの代表格もパッタイでしょうか、⑥インドネシアも代表選手はミーゴレン。矢張り、フィリピンとマレーシアが抜けているのは麺料理がない、または口に合わない、ということでしょうね。

 

で、

 

この間近所の八百屋的スーパーで不図見つけたのが、何やらローカルで「伝統」を示唆する包装のソーメン。早速購入して、

 

(1)最初の晩は紫蘇等薬味をしっかり使って冷やし→ウエッ、ダメだな、こりゃ。(当たり前すぎて写真無し。)

(2)とはいえ、捨てるのももったいないから次の昼に「ソーメンチャンプルー」(写真↓。Panから食べてはいけませんね。)

(3)最後に作ったのが、魚介出汁、コチジャンと残ったキムチを使った韓国風のソーメン(撮影不可、詳細後記)で、

 

その後、大変な災厄が...

 

具体的に言うと、

(1)昼食後、なんだか胃がしくしく痛む気がしてきて、

(2)夕方には本格的な痛みで(ここ5年間ずーっと365日ベースを守っている)晩酌も夕食も食べずに就寝

(3)夜間に7回嘔吐(5回以降は何も出ずにだけえずくだけ)

(4)始終差し込むような痛みがあり、その晩は一睡もできず

というありさま。

 

翌朝(当然)係り付け医に受診し、どうもその前から風邪気味であったこともあり、胃腸炎を起こしたようだ問うことで、

 

7種類のお薬(これはディスっているのではなく、単に驚いているという意味です!)

 

を頂きました。そのおかげで、あれだけ苦しんでいた胃痛が消え、その晩は前夜の分を取り返そうと6:00PMに就寝、途中何度か置きましたが9時間寝ることが出来ました!

 

今朝も(何故か懐かしい「二日酔いの頭痛」のようなものを感じつつも)体調は良好で起床、朝食(や妻のお弁当の具や昼食)の用意、朝風呂に入って回復の道程がはっきりと見えてきました。

 

教訓

(1)「興味本位で訳の分からないものを買って食べたりすんじゃないよ!」

(2)素人考えよりも医者に受診

(3)「内科医は薬処方」は悪いことじゃない。外科は「原因の除去や対処」ベースの診療ですが、内科は「原因が風邪であれ、ノロであれ、食中毒であれ、ダメージを受けた臓器や機能の回復のための対症ベースの診療」なので。

(4)病気は悪いことだけじゃない、これを機会に色々と考える事の契機だと思いましょう。

(5)因みに直前飲み過ぎ、食いすぎで61kgだった体重が今朝は57.9kgに約3kg減少。(お腹周りもスッキリ)ダイエットにお勧め...しません。

 

私のような昭和戦後生まれの老人にとって「ヒステリー(hysteria)」は(当時の「神経症」としての)疾病というよりも、「女性特有のキレた状態」として親世代が使う概念だと思っていました。(随分失礼な話ですが...)

 

そのように当時の一般の日本人が理解したのも、今から200年前(19世紀)では「子宮の病気」として蛭に血を吸わせるとか、とんでもない治療法であったことからそう伝わったと思われます。(前出wiki(hysteria)参照)

 

しかし、19世紀になるとヒステリーの治療法はやや近代化し、フロイトに強い学究興味を与えて、精神分析学を創出させることになったこと、既に書いた通りです。

 

では、「神経症」が解体した現在ヒステリーはどのような精神疾患とされているのでしょうか?

 

これに対する答えは、またまたChat-GPT様にお願いしましょう。

 

「昔のヒステリー」は今?

 

問:フロイトが治療したような昔のヒステリーは現在のDSM等の診断基準では、どう言う障害と考えられていますか?

答(ChatGPT):フロイトが治療したような「ヒステリー(hysteria)」は、現代の精神医学では明確な診断名としては使われなくなっています。現在のDSM精神疾患の診断・統計マニュアル)やICD国際疾病分類)では、当時「ヒステリー」とされていた症状は、いくつかの異なる診断名に分けられています。主に以下のような疾患として考えられます。

1. 転換性障害(転換症/変換症, Conversion Disorder

  • DSM-5の分類: 「身体症状および関連症群」

  • 特徴: 精神的ストレスが身体的症状(麻痺、けいれん、失声、視覚障害など)として現れるが、神経学的・医学的に説明できない。

  • 当時の「ヒステリー性麻痺」などに相当。

2. 解離性障害(Dissociative Disorders

  • DSM-5の分類: 「解離症群」

  • 特徴: 記憶喪失(解離性健忘)、別人格の出現(解離性同一症)、現実感喪失など。

  • フロイトが扱った「多重人格」的なケースやヒステリー性健忘に相当。

3. 身体症状症(Somatic Symptom Disorder

  • DSM-5の分類: 「身体症状および関連症群」

  • 特徴: 身体的な苦痛を強く訴えるが、医学的検査では説明がつかない。患者は症状を過度に気にし、苦痛を感じる。

  • 昔の「ヒステリー的な訴え」に相当。

4. 境界性パーソナリティ障害(Borderline Personality Disorder

  • DSM-5の分類: 「パーソナリティ障害群」

  • 特徴: 感情の不安定さ、衝動性、対人関係の不安定さ、自傷行為など。

  • ヒステリー性人格(現在では使われない)がこれに近い概念。

5. 演技性パーソナリティ障害(Histrionic Personality Disorder

  • DSM-5の分類: 「パーソナリティ障害群」

  • 特徴: 過度な感情表現、注目を引こうとする行動、誇張された言動。

  • 「ヒステリー性格」と呼ばれていたものの一部に該当。


まとめ

フロイト時代の「ヒステリー」は、転換性障害、解離性障害、身体症状症、境界性パーソナリティ障害、演技性パーソナリティ障害などに細分化され、より具体的な診断基準が設定されました。現在では、これらの症状は脳機能や心理的メカニズムを考慮しながら治療されるようになっています。

 

如何でしょうか?私が半世紀前に学んだ

「精神分析」や「神経症」は今や跡形もなくなっている

ことが良くお分かりと存じます。

 

【Pscho】シリーズフロイト再考フェーズに進み、前回は【Psycho】フロイトの描く「自我世界」をやりましたが、一般の方が「フロイト」に関して興味を持って接近する機会は矢張り

 

夢判断

 

ではないでしょうか?そして(To be very honest and with no hesitatation to say)そのような方は「人の心理」や「(特に)ご自身の知らない部分(無意識)」に興味や関心があるといってまず間違いないと思います。

 

(フロイトの生涯には理論変遷がありますが)フロイトが「夢判断」を著したころの簡単な纏めとしては、

 

(1)夢は無意識(エス)の欲求の発露(夢という精神現象の目的は潜在的な願望の充足)

(2)但し、それは抑圧を受ける為、検閲された表現となっている

(3)従って、夢を記録し、自由連想を行って夢の中の事象に関連する意味を探り、本当の意味を判断する

 

というものです。しかし、これはフロイトが自分の夢を自己分析して得た結論であり、与件と問が結論となる「循環論法である)」という批判を容易に受けることになります。

:この中で「ヨイショ」と書かれた中野信子さんの記事はこれ。精神現象を「外から観る(脳神経学)」方が「内から観る(精神心理学)」のを面白がる、ということの方が興味深いですね。

 

フロイト(精神分析学)とならぶ大家の一人であるユング(分析心理学)は異なる見方をしています。()まず彼は夢が心の状況を表現し、自我や意識に対して補償の役割を果たしていると考え、無意識のみならず意識も相互的に夢に作用し、更に(ここがユングのユングたらしめているところですが)無意識(集合的無意識あるいは元型)から意識に向けてのメッセージであると考えました。

:Copilotなどは↓の様に対比させますが、これで「相違を表し」ているといえるのでしょうか?「自我に対する補償」とは「満たされない願望充足(の願望)」とどう違うのでしょうか?また、双方とも観念連合を自由連想や「語ってもらう(どう違うの?)」によって確認、解釈されるのは(寧ろ)極めて類似しているというべきでしょう。唯一の大きな違いが(フロイトが非科学的だとして忌避した)ユングの「集合的無意識」なのでしょうが、それも「鶏(集合的無意識があり、それが発露する)が先か、卵(個に誕生後共通文化的価値等が刷り込まれる)が先か」という感もあります。

 

フロイト

ユング

夢の解釈

願望充足、睡眠の守り手

心の状況をありのままに描き、自我や意識に対する補償

夢分析の方法

自由連想法

夢を語ってもらい分析する

無意識の捉え方

個人の体験と経験によって形成される

意識と無意識が相互的に作用する

 

ここ迄で当時の精神分析学等が「(観察の対象である自我による)内省される現象を(観察の主体である自我により)解釈せざるを得ない(また他の方法で検証することもできない)」という本源的弱点をさらけ出してしまうことになります。(しかし、そのような批判を浴びながらも未だにフロイトや夢判断が支持される・・・人々に思い当たる節がある・・・ということも見逃せない事実です。

 

ここでは精神分析や(分析)心理学という「(内側から観る)内省的現象記述アプローチ」からいったん離れて、

 

とは何か(現在どのように考えられているか)

 

を異なる観点(「外側から観る)神経生理学的アプローチ」等)から再考してみましょう。

 

↑の記事を見ると、夢は

 

(1)人間が睡眠中(除白昼夢)に観る(

:必ずしも視覚だけではなく、夢で経験される知覚認知は「ヒトの場合、視覚の夢96%、聴覚の夢25%、動く夢19%、味覚の夢2%、触覚に関する夢1%、嗅覚の夢0%という結果...、先天性全盲者は視覚ではなく視覚以外の感覚を感じる夢を見る」だそうです。

(2)主としてレム睡眠の時に出現する

(3)「大脳が覚醒時と同様な活動状態を示す脳波になる。時にはその活動に刺激されて反射運動がみられる場合がある。この反射運動には、寝ている状態で手足を動かす、声を発する(つまりは寝言)などある。寝言の中にはを歌いだす」(

:私が米国に駐在していた時、寝言も英語だったと神様から聞いています。

(4)夢を見る理由については現在のところ不明

(5)身体状況の影響では「尿意が夢に反映されやすいのは良く知られ」()ていますが、飢えや渇き等の身体状況や、気温等の外的環境刺激がどのように夢に影響するかは分かりません。

:私自身の経験では、幼児の時にトイレに行った夢を見ておねしょをしてしまったことを覚えています。

 

ということで、大脳の(REM - Rapid Eye Movement)睡眠時における「(なんらかの)精神活動の結果または産物である記憶」()であるという以上のことは(科学的には)言えないと思います。(その意味で夢判断や夢分析を「夢占い」と大同小異と批判する人もいますが、それはそれで誤っているとは言えません。「夢占い」も経験的な夢の象徴解釈の試みであることに変わりはないのですから。)

:大体夢を観ている時、「視座という主体認知(「私が見ている」という「意識」)」が感じられますが、それは覚醒時の意識(見当識)とは全く違う「意識」であることは間違いありません。また、観た夢を忘れてしまう(夢の内容が記憶にない)ことは都度あることですが、その場合でも「夢を観たという記憶」があることを忘れてはなりません。

 

その意味で、フロイトの「願望充足説」は100%正しいわけではありませんが、同時に100%間違っているわけでもなく、「願望充足説に基づく解釈」が奏功することもあったでしょう。要すれば夢という現象の前で「夢が何なのか、夢を観ている時の意識がどのようなものか、何故夢を観るのか、何が夢の原因となり又は影響を与えるのか」まだ分からない、というのが「科学的な結論」なんでしょう。(フロイトの偉大さは、少なくとも彼以前にはなかった「夢には(無意識に関連している、何らかの)意味がある」という主張を社会に定着させたことでしょう。)

 

とはいえ、

 

これで終わっては身も蓋もないので、(願望充足説の)フロイトを悩ませた「悪夢や不安夢の解釈」はどうなのか?に移りましょう。フロイトは第一次大戦を経て(エロス・リビドーの対極にある)タナトスの概念を取り入れ、「例外」を認めたようです。()確かに自我防衛機構として外傷的な経験や不安(外傷的な経験の予想)を「予め経験する」ことは十分に考えられ、あり得ることです。

出典

Freud considered that the experience of anxiety dreams and nightmares was the result of failures in the dream-work: rather than contradicting the "wish-fulfillment" theory, such phenomena demonstrated how the ego reacted to the awareness of repressed wishes that were too powerful and insufficiently disguised. Traumatic dreams (where the dream merely repeats the traumatic experience) were eventually admitted as exceptions to the theory. フ ロイトは、不安夢や悪夢の体験は、ドリームワークの失敗の結果であると考えた。「願望充足」理論と矛盾するのではなく、そのような現象は、あまりにも強力 で十分に偽装されていない抑圧された願望の自覚に対して、自我がどのように反応するかを示しているのである。トラウマティックな夢(夢は単にトラウマ体験 を繰り返す)は、最終的には理論の例外として認められた。

 

不安夢の序に、最後に(余り夢は覚えていない質なんですが)私の経験する、繰り返し見る不安夢(既視感の有る夢ではなく、現実に何度も見る同様の夢)についてご紹介しましょう。

  • 時空的にあり得ない組み合わせの背景や環境の夢です。(例えばエレベーターが数百階まであるとか、異なる時代の友人や同僚が同時に現れる等)
  • 例えば私は巨大な(日本橋三越のような)旧い格式のある石造りのような建物の薄暗い回廊をウロウロとさ迷い歩いています。(他の例では広々としたモール建物の中にいます・・・眠っているのに「あー、これは昔行ったWhiteplains(NY州)のモールだな」という意識があったりします。)
  • なんでそこにいるのか、何を求めて、何をしようとさ迷っているのか分かりません。しかし私は「解決」を求めてさ迷っている、という意識があります。
  • その為に回廊のドアを開けて中に入ってみたり、旧い(日本橋三越にあるような金属格子付きの)エレベーターに乗ったりしますが、所謂"going nowhere"で(ぼんやり)目的地と感じる地点から却って離れてゆくことを認識し、不安になります。
  • どうあがいても、どんなに歩いても「決して目的地に到達しない」という不安感が高まります。
  • そして絶望感を感じながら覚醒します。

 

フロイトなら「それは貴方が子供の時に持った、禁断の性的欲望が満たされない為にその充足を求めてさ迷っていることを表しています。」と言うでしょうか?

 

意識の内省的観察を行うことを唯一の方法とする精神心理学では、そうであるという立証も、そうでないという反証もできない

 

ことを痛感します。(まぁ、大脳神経生理学でも無理だとは思いますが...)