ASP.NET MVC 5 OracleのテーブルからEDMを作成するとき、Numerの精度によりint以外にマッピングされる

VisualStudio2017 / ASP.NET MVC 5 / Framework4.6.2 / C# / Oracle.ManagedDataAccess.EntityFramework 12.2.1100


データベースファーストでOracleのテーブルよりEDMを作成すると、Numerの精度により以下のようにマップされます。
Number(1,0)bool
Number(2,0) ~ Number(3,0)byte
Number(4,0)int16
Number(5,0) ~ Number(9,0)int32
Number(10,0) ~ Number(18,0)int64


Numberの精度がNumber(1,0)~Numebre(4,0)の場合に int16 にマップするには、web.config に
<add NETType="int16" MinPrecision="1" MaxPrecision="4" DBType="Number"/>
を追加します。

Web.config
<oracle.manageddataaccess.client>
 <version number="*">
  <edmMappings>
   <edmNumberMapping>
    <add NETType="int16" MinPrecision="1" MaxPrecision="4" DBType="Number"/>
   </edmNumberMapping>
  </edmMappings>
  <dataSources>
   <dataSource alias="XXXXX" descriptor="(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=XXX.XXX.XXX.XXX)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=XXXXX))) " />
  </dataSources>
 </version>
</oracle.manageddataaccess.client>

ASP.NET MVC EditorForでhtmlAttributesを指定せずにclassを指定する

VisualStudio2017 / ASP.NET MVC 5 / Framework4.6.2 / C#


EditorForでclass属性を指定するには、htmlAttributes を使って下記のように書きます
@Html.EditorFor(mdl => mdl.ID, new { htmlAttributes = new { @class = "form-control" } })
少しの事なんだけどメンドクサイ…

EditorForを拡張したEditForExを作成し、htmlAttributesを指定せずにclass属性を設定できるようにしたいと思います。
こんな感じで設定できるようにします。
@Html.EditorForEx(mdl => mdl.ID, new { @class = "form-control" } )

カスタムヘルパーの作成

カスタムヘルパーEitorForExを作成します。
htmlAttributes属性はヘルパーの中でつけてあげます。

EitorForExヘルパーを使用したとき何か固定で付けたい属性があれば、指定しておきます。
Bootstrapを使用しているのであれば「form-control」を付けておいてもいいかもしれません。

また、通常のEditorForヘルパーはclass属性に「text-box single-line」を吐き出すので、これを出力しないようにします。

using System;
using System.Linq.Expressions;
using System.Web;
using System.Web.Mvc;
using System.Web.Mvc.Html;
using System.Web.Routing;

using MyApp.Addon.Attributes;


namespace MyApp.Addon.Extentions
{
    /// 
    /// HTMLヘルパーに対する拡張クラス
    /// 
    public static class HtmlHelperEx
    {

        /// 
        /// EditorForヘルパーを拡張したヘルパー
        /// 機能
        /// htmlAttributesの指定なしにclass属性を指定する
        /// class属性にハードコーディングされる「text-box single-line」を削除する
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        public static IHtmlString EditorForEx<TModel, TValue>(this HtmlHelper<TModel> htmlHelper, 
                                                                Expression<Func<TModel, TValue>> expression, 
                                                                object viewData)
        {
            //属性をディクショナリに変換
            var dicAttr = new RouteValueDictionary(viewData);
            
      //何か固定で足したい属性があればここで足す
            //属性を追加
            dicAttr.Add("maxlength", 10);

            /*
             * EditorForヘルパーでHTML属性を指定するには
             * @Html.EditorFor(mdl => mdl.ID, new { htmlAttributes = new { @class = "form-control", @readonly="readonly" } } )
             * と指定しなければならない。
             * 
             * これをEditorForExヘルパーでは
             * @Html.EditorFor(mdl => mdl.ID, new { @class = "form-control", @readonly="readonly" } )
             * と指定できるようにする。
             */
            dynamic htmlAttr = new { htmlAttributes = dicAttr };
            MvcHtmlString hstr = htmlHelper.EditorFor(expression, (object)htmlAttr);


            /*
             * 吐き出されるHtmlより class=属性の「text-box single-line」を外す
             */
            hstr = MvcHtmlString.Create(hstr.ToString().Replace(" text-box single-line", ""));
            
            return hstr;
        }

    }
}
よく使用するヘルパーであれば、Views/Web.configのnamespace要素に追加すると、各ビューにインポートを書かなくて済みます。
web.configに追加した場合、私の環境ではVisualStudioを再起動しないと、ビューで使用する際にコンパイルエラーになりました。

        
       ・・・省略
        

web.configに追加しない場合は、各ビューの先頭でインポートしてください。
@using MyApp.Addon.Extentions;

通常のEditorFor と 今回作成したEditorForExの出力をみてみます。
EditorFor
@Html.EditorFor(mdl => mdl.ID, new { htmlAttributes = new { @class = "form-control" } })

出力結果:

EditorForEx
@Html.EditorForEx(mdl => mdl.ID, new { @class = "form-control" })
出力結果


ASP.NET MVC 自作カスタム属性を、自作Htmlヘルパーでビューに表示する

VisualStudio2017 / ASP.NET MVC 5 / Framework4.6.2 / C#


ビューモデルのプロパティに指定した「Placeholder」カスタム属性の値を、「PlaceHolderFor」カスタムヘルパーでビューに出力できるようにします。

目指すゴールは
ビューモデルのプロパティにPlaceholder属性を設定し、プレースホルダーに表示する値を指定できるようにします。
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using MyApp.Addon.Attributes;

namespace MyApp.ViewModels
{
    /// 
    /// ログイン ビューモデル
    /// 
    public class Login
    {
        [DisplayName("ID"),
         Placeholder("IDを入力してください")]
        public string ID { get; set; }
    }
} 

次にビューでは @Html.PlaceholderFor ヘルパーを使用して、プレースホルダーの値を表示できるようにします。
@Html.EditorFor(mdl => mdl.ID, new { htmlAttributes = new { @class = "form-control", placeholder = @Html.PlaceholderFor(mdl => mdl.ID) } })

カスタム属性の作成

まずはPlaceHolder属性から作成していきます。
Placeholder属性では、プレースホルダーに表示する値をコンストラクタの引数で指定するようにしています。
モデルのプロパティに対して使用する属性なので、クラスに System.AttributeUsage(AttributeTargets.Property) 属性を指定します。
using System;

namespace MyApp.Addon.Attributes
{
    /// 
    /// プレースホルダー属性
    /// 
    [System.AttributeUsage(AttributeTargets.Property)]
    public class PlaceholderAttribute : System.Attribute 
    {
        /// 
        /// プレースホルダーとして表示値する値
        /// 
        public string DisplayValue { get; set; }

        /// 
        /// コンストラクタ
        /// 
        /// プレースホルダーとして表示する値
        public PlaceholderAttribute(string displayValue)
        {
            DisplayValue = displayValue;
        }
    }
}
次に属性を読み取るモデルメタデータプロバイダーを作成します。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.Mvc;


namespace MyApp.Addon.Attributes
{
    /// 
    /// 拡張したモデルメタデータプロバイダー
    /// 
    /// 
    /// Global.asaxのApplication_Start()で、モデルプロバイダーに指定する。
    /// 
    public class ModelMetadataProvidersEx : DataAnnotationsModelMetadataProvider
    {
        /// 
        /// 基底のCreateMetadataをオーバーライド
        /// 指定したモデルのメタデータを作成します。
        /// 
        /// 属性
        /// コンテナーの型。コンテナーが存在しない場合は null。
        /// モデル アクセサー。
        /// モデルの型。
        /// プロパティ名。モデルがプロパティではない場合は、null。
        /// モデルのメタデータ
        protected override ModelMetadata CreateMetadata(IEnumerable attributes, Type containerType, Func<object> modelAccessor, Type modelType, string propertyName)
        {
            //元のCreateMetadataメソッドを呼び出し
            ModelMetadata metadata = base.CreateMetadata(attributes, containerType, modelAccessor, modelType, propertyName);
            //Placeholder属性を追加する
            PlaceholderAttribute pha = attributes.OfType<PlaceholderAttribute>().FirstOrDefault();
            if (pha != null)
            {
                metadata.AdditionalValues.Add("Placeholder", pha);
            }
            
            return metadata;
        }
    }
}
作成したモデルメタデータプロバイダーを、Grobal.asaxのApplication_Startメソッドで、属性の読み取りに使用する設定を行います。
using System.Web.Mvc;
using System.Web.Routing;

namespace MyApp
{
    /// 
    /// アプリケーションイベント
    /// 
    public class MvcApplication : System.Web.HttpApplication
    {
        /// 
        /// アプリケーション起動時
        /// 
        protected void Application_Start()
        {
            //エリア登録
            AreaRegistration.RegisterAllAreas();
            //ルート登録
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            //データアノテーション属性の読み込みに、カスタマイズしたプロバイダーを使用する
            ModelMetadataProviders.Current = new MyApp.Addon.Attributes.ModelMetadataProvidersEx();
        }
        
    }
}
以上で属性の作成は終了です。
リビルドしたら、ビューモデルのプロパティに対して、プレースホルダーの属性を設定します。
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using MyApp.Addon.Attributes;

namespace MyApp.ViewModels
{
    /// 
    /// ログイン ビューモデル
    /// 
    public class Login
    {
        [DisplayName("ID"),
         Placeholder("IDを入力してください")]
        public string ID { get; set; }
    }
} 

カスタムHtmlヘルパーの作成

次にプレースホルダーの属性値を表示するためのHtmlヘルパーを作成します。
using System;
using System.Linq.Expressions;
using System.Web;
using System.Web.Mvc;
using System.Web.Mvc.Html;
using System.Web.Routing;
using System.Dynamic;

using MyApp.Addon.Attributes;


namespace MyApp.Addon.Extentions
{
    /// 
    /// HTMLヘルパーに対する拡張クラス
    /// 
    public static class HtmlHelperEx
    {
       
        /// 
        /// PlaceholderFor プレースホルダー属性に指定された値を出力するHtmlヘルパー
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        public static IHtmlString PlaceholderFor<TModel, TValue>(
                             this HtmlHelper<TModel> htmlHelper,
                             Expression<Func<TModel, TValue>> expression)
        {

            var attrList = ModelMetadata.FromLambdaExpression<TModel, TValue>(expression, htmlHelper.ViewData);
            //プレースホルダーの属性値を返す
            if (attrList.AdditionalValues.ContainsKey("Placeholder"))
            {
                var plhAttr = (PlaceholderAttribute)attrList.AdditionalValues["Placeholder"];
                return new HtmlString(plhAttr.DisplayValue);
            }
            return new HtmlString("");
        }

        

    }
}

以上でヘルパーの作成は終了です。


よく使用するヘルパーであれば、Views/Web.configのnamespace要素に追加すると、各ビューにインポートを書かなくて済みます。
web.configに追加した場合、私の環境ではVisualStudioを再起動しないと、ビューで使用する際にコンパイルエラーになりました。

        
       ・・・省略
        

web.configに追加しない場合は、各ビューの先頭でインポートしてください。
@using MyApp.Addon.Extentions;
これでビューでは @Html.PlaceholderFor ヘルパーを使用して、プレースホルダーの値を表示できるようになります。
@Html.EditorFor(mdl => mdl.ID, new { htmlAttributes = new { @class = "form-control", placeholder = @Html.PlaceholderFor(mdl => mdl.ID) } })

実行結果

ASP.NET MVC データベースファーストでOracleのテーブルからEDMが作成できない

Visual Studio 2017
Framework 4.6.2
ASP.NET MVC 5

上記の条件でORACLEのテーブルからEDMを作成しようとしたのですが、EDM作成ウィザードが途中で消えてしまう現象が発生しました。

VisualStudio2017でFramework4.6.2を選択し空のASP.NET MVCアプリケーションを作成しました。


NuGetからEntityFrameworkをインストールします。
2018/09/08時点で最新の安定版6.2.0です。

NuGetからOriole.Managed.DataAccess.EntityFrameworkをインストールします。
2018/09/08時点で最新の安定版18.3.0です。


Oracleのサイトから32-bit Oracle Data Access Components (ODAC) with Oracle Developer Tools for Visual Studio をダウンロードしてインストールします。
2018/09/08時点で最新バージョンの12.2.0.1.1です。

EDMを追加します。
適当なフォルダで右クリックし「追加」>「新しい項目」を選択し「ADO .NET Entity Data Model」を選択します。
Entity Data Model ウィザードが起動するので、設定を進めていきます。




本当なら次にデータベースのテーブルを選択する画面が出てくるのですが、ウィザードはここで終了してしまいます。

色々ためしてみましたが、NuGetからインストールしたOriole.Managed.DataAccess.EntityFrameworkを、 最新の安定版18.3.0 から ひとつ前のバージョン12.2.1100に落とすとウィザードが正常に動きました。

同じようにEDM作成ウィザードを起動すると、次はテーブルを選択する画面が出てきました。

簿記 簿記2級で使用した教材

簿記3級で使用した教材に続いて、
私が簿記2級で使用した教材を紹介します。

簿記3級では、TAC出版の「スッキリシリーズ」と「合格トレーニング」を使用したので
とりあえず簿記2級も同じシリーズを購入して勉強を始めました。
スッキリわかる日商簿記2級 商業簿記

スッキリわかる 日商簿記2級 工業簿記

合格トレーニング日商簿記2級商業簿記

合格トレーニング 日商簿記2級 工業簿記


簿記3級の流れで同じシリーズの本を買いましたが、
正直なところ簿記2級からは(ネコはかわいいけど)スッキリシリーズでは少し内容が足りないと思います。
特に工業簿記はスキッリシリーズでは理解が不足しました。

簿記1級の勉強ではネコは卒業して、同じTAC出版の簿記の教科書と簿記の問題集を使っています。
簿記2級の勉強の時は使用していなかったのですが、「スッキリシリーズ + 合格トレーニング」の組み合わせより、「簿記の教科書 + 簿記の問題集」 の組み合わせのほうが、理解が深まるかもしれません。
書店などで内容を確認してから購入することをお勧めします。


テキストと合格トレーニングで一通り勉強が終わってから、過去問と予想問題を買ってみました。
とりあえず同じスッキリシリーズからチョイス
スッキリとける日商簿記2級過去+予想問題集

とりあえず買ってみたけど、これも要らなかったかもしれません。
最後に紹介するネットスクールの過去問だけで良かったかなと思います。
簿記2級からは商業簿記に加え、新たに工業簿記が入ってきます。
過去問や予想問題をすると、どうも工業簿記が弱いことに気が付きました。
少し問題を捻られると、時間がかかったり解けなかったりします。


工業簿記はまだ勉強が足りないな…と思い、下記の本を購入してみました。
検定簿記ワークブック2級工業簿記 日本商工会議所主催簿記検定試験

これは私にはあまり役に立たなかったです。
この本を購入した時はわからなかったのですが、私が知りたいことは工業簿記の効率的な解き方で、計算の下書きの仕方だったようです。
このワークは工業簿記の問題集であり、効率的な解き方を書いている本ではありません。
この時は問題の数をこなせば慣れるかと思って購入しましたが、問題を解いてもあまり効率が上がることはありませんでした。


次に工業簿記のために買った本は、
パブロフ流でみんな合格日商簿記2級工業簿記総仕上げ問題集
これは本当に良かった!
工業簿記のボックス図の書き方が手書きで書かれていて、あ~こう書けば時間短縮できるのね!とかがわかったり
ボックス図だらけで解いているうちに混乱してしまっていたのが、一気にスッと理解できました。
内容はとても易しいものばかりなのですが、これ1冊で苦手だった工業簿記が得意になった1冊でした。
工業簿記が苦手だなと感じる方にはお勧めです。


最後に過去問はネットスクールの日商簿記検定模擬試験問題集2級をチョイス。
最後の1~2カ月はこの過去問を何周も回していました。
この過去問は解説に誤記が結構あるのですが、必要最低限の内容で良かったです。
過去問を解く段階までくると、そんなに詳しい解説も必要がないと思いますので、過去問と必要最低限の解説で十分かと思います。


今は商業簿記より工業簿記のほうが得意です。
簿記2級の本試験では商業簿記の問2か問3に超難問が入り、工業簿記は基本に忠実な問題が多く得点源です。
また商業簿記は新論点など過去問にはない問題が出題される可能性があります。
その点、工業簿記は基本に忠実で新論点の出題もありません。
工業簿記は満点を取るつもりでがっつり勉強して、商業簿記で1問捨てる覚悟で本試験に挑みました。

また過去問を解くときも、工業簿記から問5→問4→次に商業簿記の問1→問2か問3の時間が掛からなさそうなほうを解くようにしました。
過去問では3周目ぐらいでも全問解くのにギリギリ2時間。全問満点もなかなか取れなかったのですが
本試験(144回)は簡単な問題だったのか、全問解いてから、見直しに全問もう一度解けるほど、時間が余りました。
点数は96点。商業簿記でどうしても理解できない問題があって(日本語の言い回しがわからなかった)、間違えたのはその1問だけでした。


簿記2級の勉強は、簿記3級の下地があるのでそこまで大変だとは感じませんでした。
ボリュームは工業簿記が増える分だけ簿記3級の倍にはなりますが、単純にボリュームが増えるだけなので、
コツコツ毎日続けていればいつか終わります。
簿記2級では工業簿記をしっかりマスターすることがキモだと思います。

簿記 簿記3級で使用した教材

今日は私が簿記3級で使用した教材を紹介します。

私の仕事はIT系なのですが、新しいプログラム言語を勉強するときには本を購入します。
この本を選ぶ際は以下のマイルールがあります。
  1. まず1冊目は簡単で易しいものを選ぶこと。
  2. 次の1冊はより専門的な難しいものを選ぶこと。
1冊目から調子に乗って専門的な難しい本を読むと、たいがい書いていることが理解できず嫌になります。
でも1冊目に簡単で易しい本を読むと、専門的な難しい本も理解できるようになっています。
簡単で易しい本だけを読んで専門的な本を読まずにいると、プログラムは書けるけれど、なぜそうなっているのかなど本質が理解できません。


そんなわけで簿記も同じだろうと思い、マイルールにのっとりまずは評判の良い易しそうな本を選ぶことにしました。

TAC出版 スッキリわかるシリーズ 
スッキリわかる 日商簿記3級 [テキスト&問題集]

ネコが可愛いです。
易しい文章で、簿記が初めてでも問題なく理解できると思います。
簿記3級であればこの1冊で大丈夫かもしれません。


わたしは問題が少なくてちょっと不安だったので下記の問題集を購入しました。
TAC出版 よくわかる簿記シリーズ
合格トレーニング日商簿記3級

この問題集はテキストの内容の理解を深めるのに役立ちました。
(時間がなければ、この問題集は必要ないかもしれません。余力があれば確実に理解は深まります。)


簿記3級で購入したテキストは以上の2冊です。
過去問などは買わなくても大丈夫でした。

簿記を勉強したきっかけでも書きましたが、
簿記3級の勉強時間は
平日は細切れ時間で通勤時間中もいれて1日30分ぐらいが精一杯。
土日祝の休みの日は早起きして1時間くらい。
基礎が大事だと思っているので、資格を取ることが目的ではなく、しっかり理解することを目的に6カ月かかりました。

勉強方法は簿記の勉強方法に書きましたが、テキスト→問題集→ノートにまとめる方法です。

今は簿記1級を勉強中ですが、簿記3級の勉強は簿記の知識がほぼゼロの状態からのスタートだったので一番キツかったです。
ネットで検索すると簿記3級は最速1カ月、だいたい3カ月で合格できるそうです。
たとえ仕事と家事育児で時間が取れなくても、諦めなければ時間はかかってもいつかは合格できるので、たとえ10分でも毎日続けることが大事だと思います。


次回は簿記2級で使用したテキストを紹介したいと思います。

簿記 私が使用している電卓

簿記で使用する電卓は何がいいか?迷いますよね。
私もネットで検索して、いろいろ迷いました。

今日は実際に私が使用した電卓と、その使い心地などを紹介します。

まず1代目
カシオ DF-120GT-N Amazon価格:2,172円
カシオ スタンダード電卓 時間・税計算 デスクタイプ 12桁



この電卓で簿記3級の試験と簿記2級の試験を受けました。
この電卓の良いところは角度調整ができるところです。
キー音はカチカチとちょっと軽いです。
特にめだって良いところも、悪いところもありません。
簿記3級なら十分です。
簿記2級でももちろん使えますが、下記の2代目の電卓のほうがお勧めです。


次は2代目
CASIO DS-20DB-N Amazon価格:7,028円
カシオ 本格実務電卓 日数&時間・税計算 デスクタイプ 12桁



高いです!
簿記1級の勉強を始めるときに買いました。
1代目がCASIOだったので、2代目もCASIOから選びました。
高いだけあって、やっぱりいいです。
簿記2級の時に買えば良かったと思いました。

この電卓の良いところ
・早打ち対応
・日数計算
・大きさ(A5サイズで大きい!でも打ちやすい)
・操作時のすべりを抑える大型ストッパーが本体裏面に付いている

早打ち対応は必須です。
簿記2級、簿記1級と進んでいくと、電卓操作も早くなっていきます。
パチパチパチとブラインドタッチで連打してちゃんとキー入力を認識してくれないとストレスたまります。

日数計算も私には必須です。
私は日数や月数の計算が大の苦手です。
固定資産の償却や、満期目的有価証券の償却が出てくるだけで、もうウンザリかつゲンナリでした。
でも頻出論点なので2級でもほぼ出題されるんじゃないでしょうか。
日数計算機能があると本当に楽です。
日数計算機能の便利さをしっていたなら、簿記2級の試験前に買っていたと思います。
今ではもう手放せないです。

大きさはA5サイズと大きいです。
でもこの大きさが打ちやすいと思っています。
私は初代の電卓は右手打ちでした。
簿記2級の勉強中に左手打ちを練習したのですが、どうしても左手打ちをマスターできませんでした。
でもこの電卓に変えてから、すんなり左手打ちに移行できました。

キー音はカチカチならず適度な押した感があり快適です。
すべり止のストッパーもぴったりとくっついてまったく動きません。


悪い点もあります。
・角度調整ができないため、光の角度で反射して見にくいときがあります。
・操作時のすべりを抑える大型ストッパーが本体裏面に付いているんですが、まったく動かな過ぎて困る。

反射して見えないという状況はそんなにはないのですが、場所を選べない場合など、ときどき反射で見えないことがあります。
角度調整ができたら本当にいいのになぁと思います。

そして一番困るのは滑り止めです。
まったく動かないです!
机の上に電卓をポンと置いて、垂直に電卓を持ち上げると、机まで持ち上がりそうなほどくっついています。
何も意識せずに電卓を動かそうとすると、爪がはがれるかというほどの衝撃を受けます。
女性でネイルや付け爪していると外れるかもしれません。


ツールに頼らないで試験に挑むのもいいですが、
予算が許すなら快適なツールを手にするとモチベーションも効率も格段にアップしますよ。
ちなみに私はツールにはこだわるタイプで、予算が許す限り道具から揃えるタイプです(笑)

以上、たった2台ですが、私が過去使用した電卓と、現在使用している電卓の紹介でした。


簿記 簿記の試験で知っているとチョットいいこと

今日は簿記の試験で知っているとチョットいいことを紹介します。
私も簿記2級の試験直前に知ったのですが、もっと早く知っておきたかったです。


みなさん簿記の試験を受ける直前は、過去問題を制限時間内に解答できるか練習すると思います。
その時、計算用紙はどうしていますか?

実際の試験では問題用紙とは別に白紙のA4用紙が1枚配られます。
私は簿記2級の過去問を解くとき、計算用紙はA4白紙1枚と決めて、制限時間内に解けるか練習していました。
ネットで調べると、この計算用紙を縦に折り目を入れて仕訳を書くとよいとか、いろいろ使い方が紹介されています。
私の場合
それ以前に計算用紙がA4用紙1枚じゃ足りません。
過去問を解く際は自分にあった計算用紙の使い方も考えようとしていたのですけど、それ以前の問題でした。

でもこの計算用紙、実際の試験では、なんとA4 1.5枚~2枚にできるんです!!


問題用紙が配られると、まず白紙のA4用紙が1枚配られます。
そして問題用紙の裏表紙が白紙なんです。
これでA4の片面分の計算用紙ができます。
試験の回によっては、裏表紙の裏面も白紙の場合があります。

でも確実にA4用紙1.5枚分の計算用紙ができます。

私の場合ですが、試験が始まっったらすぐに問題用紙のホッチキス止めを外し、問題用紙をばらしました。
こんな感じです。


この回は裏表紙の裏面が白紙だったので、問題1以外の計算用紙に使えました。
計算用紙がA4用紙1枚では足りない方は、お試してみてください。

簿記 試験会場での注意

今日は簿記の試験会場について書いてみようと思います。

私の場合、試験会場は地元の商工会議所でした。
3級は6月14日、2級は11月20日に受けました。

6月に3級の試験を受けたときは、とても暑い日でした。
服装はジーパン+Tシャツ+サンダルだったと思います。
試験会場はクーラーガンガンで激寒でした!!
靴下を履いていない足はキンキンに冷え、試験直前にトイレに行ったはずなのに、試験の最後までトイレ我慢するのが大変でしたw
女性はカーディガンを持って行きましょう。
靴下は履いていきましょうw

11月に2級の試験を受けたときは、少し肌寒い日だったと思います。
前回の教訓から暖房が効いて暑かったら大変だなと、軽く薄着で行ったと思います。
試験会場はうっすら暖房が効いた感じで寒かったw

少し寒いぐらいのほうが、頭は冴えるのでよかったですが
服装は調節できる服を着ていきましょうね~


テスト開始時間が来ると、お姉さんがマイクでテストの説明を始めます。
説明が一通り終わるとテスト開始です。

テストが開始されると、一斉に電卓を叩く音が聞こえだして焦る焦るっ
そんなバチバチ叩かなくてもいいでしょってぐらい、バチバチダダダダンって感じです。
何周りを威圧してるんだよ~って思いました。

少しすると周りがページをめくる音が聞こえてきます。
えぇ私まだ1枚目の途中なんですけど~ってまた焦るんですね。

鉛筆でカリカリ書く音、電卓を叩く音、紙をめくる音、
焦ってる人がいるのか、結構乱暴に音を立てる人がいます。
つられて焦らないように、冷静に!

そして数十分たつ頃、退出する人がではじめます。
いつも不思議なんですが、テストが開始されて30分も立たないうちに退出するって何なんでしょうか?
2級でも3級でも二人ほどいたんですが、2級の全問題を30分で解けたんでしょうか?
問題を入手するためでしょうか?
それとも試験を受ける気がないのでしょうか?
どちらにしろ、気になってしまって「もう終わったの!?」と焦ります。


試験を受ける回にもよると思うのですが
当日は時間が足らなくなると思っていたので、見直し時間は取らずに、1問づつ丁寧に解いていました。
(どうせ見直しても間違いに気づかいないし・・・)
でも、時間が余ってしまって全問題もう1回解くぐらいの余裕はありました。
優しい問題の回だったのかもしれません。
でもそんなに時間が足らないということはありませんでした。


試験会場で注意することは
1、周りにつられて焦らない。
2、衣服のチョイスは慎重に。


次回は実際の試験で知っておくとチョットお得なことを書こうと思います。

簿記の勉強方法

簿記2級の勉強から使っている消しゴムです。
右は新品。
左は現在。 人生で初めて消しゴムを無くす事なく、最後まで使い切ったw

私の愛用の消しゴムは「サクラクレパスのArch」
この消しゴムの前は「トンボ鉛筆のMono」を使ってました。
Monoは柔らかめで最後小さくなった時にポロポロ欠けてしまうんですよね~。
ArchはMonoに比べて固めで、小さくなった時もポロポロ欠けません。
消し心地もわるくなく、しっかり消えるので(私は筆圧弱めです)リピート買いしてます。

私が簿記3級からの現在勉強中の簿記1級まで実際に行っている勉強方法を紹介します。

まずは通勤電車内で簿記のテキストを1冊分をサラサラ~と読みます。
理解できなくてもいいです。ただ流し読みします。
途中寝たり意識朦朧としたりするので、通勤電車でもう1回サラサラ~と最後まで読みます。
テキストのボリュームや大きな流れをつかむ感じです。

次にテキストの理解を開始します。
通勤電車内で1章分を理解できるまで読みます。
自宅に戻ったら空いた時間でテキストの例題を解いたり、テキスト章末の問題を解いて理解を深めます。
同時に問題集の問題も解きます。
回答用紙はあらかじめダウンロードして印刷しておき、回答用紙に書いたら答え合わせをした後、消しゴムで消しておきます。
このとき問題集の問題は解けなくてOKです。
テキストだけでは理解できない部分を補う程度です。
問題集にはページの上の方に解いた日とチェック(レ点)を入れておきます。

次はノートにまとめます。
私は「書いて覚える」派で、書けば覚えられるのですが、書かないと覚えられません。
ここまで例題を解いたり問題を解いたりして要点はわかっているはずなので、自分のわかるようにノートにまとめていきます。
これが時間かかるんですよね(;^ω^)

次に該当する章の問題集の問題をもう1回解きます。
問題を解いたらページの先頭に日付と下記のマークをつけておきます。
〇:楽々解けた
〇ㇾ(〇の中にチェック):解けたけどまだ怪しい
△:間違えたけど理解できてる
×:全然だめ

1章進んだら、次は復習期間に入ります。
問題集の先頭から進めて行き、
×がついている問題は前回の日付以降3日ぐらいあけて(あまり期間を空けすぎないようにして)解きます。
△がついている問題も5~7日ぐらいあけて解くようにします。
〇とチェックがついている問題は7~10日以上あけて解くようにします。
〇がついている問題も10日以上あけて解くようにします。

〇が2回連続で続いているものは、1か月後ぐらいに解いてみて、余裕なら◎にしておきます。
以降は◎の問題は(基本)解きません。
3か月後、6か月後にランダムで解いたりはします。

簡単な問題でも最低3回は解きます。
難しくて何回も間違える問題なら7回ぐらい解いたりします。
そのたびに回答用紙にカキカキして、ケシケシするので、消しゴムが減るんですね。

ポイントは
・テキストと同時に1回
・3日ぐらいあけてもう1回
・7日~10日あけてもう1回
・1カ月、3カ月、6カ月という感じで忘却曲線を意識して復習していきます。

復習が終われば、またテキストにもどって章を進めます。
復習の隙間で章を進めて行く感じですね。

どんどん忘れて行ってしまうので、忘れても気にせず覚えなおす。
そのうち覚えます。


私は資格をとる事が目的ではなく、しっかり理解することを目的としています。
なので人より時間がかかってもかまわないと思っています。
仕事がIT関係なので、お客様とお話ししたとき「簿記1級持ってるならコレわかるよね?」とパッと聞かれて答えられる人を目指してます。

資格を取るだけなら、もっと効率よい方法があると思います。
テキストを読まずに問題集を解いてからテキストを読むといった方法もあります。
一番いいのは自分にあった勉強方法ですので、いろんな人を参考に自分にあった方法を見つけてくださいね~!

簿記を勉強したきっかけ

2016年12月28日に最後の投稿してから、約1年半ぶりの投稿です。
最近は簿記の勉強でまったく時間がなく、投稿できませんでした。

そもそもなぜ簿記を簿記を勉強しているのかというと・・・

2014年まではフリーで在宅のプログラム開発の仕事をしていました。
2015年は近所のパッケージ開発会社で短時間契約社員をしていました。
2016年からは自社でシステム受託開発している小さな会社の正社員に転職しました。

2016年で40歳になる私。
かねてから、40歳になったらどこかで正社員で転職して定年まで細く長く(惰性で)働こうと考えていました(;^ω^)
子供も4歳。
ちょっと手も離れてよいお年頃なので、この年齢で正社員で客先常駐じゃない会社に就職できてほんと幸運です。
(社員数も少ないし先行き不透明ですけど、フリーよりは安定しているし精神的に楽です。)

正直なところ苦戦すると思っていた転職活動も、5社ぐらい受けたところで決まりました。
そもそも特定派遣していないIT会社を探しても10社もなかったです。

どこの面接でもかなり評価がよかったのが簿記の資格でした。
しかも簿記3級です(笑)
(簿記2級を勉強中ですとはアピールしました)

2015年に働いていたパッケージ開発の会社は、建築会計ソフトを開発している会社でした。
簿記が苦手で借方も貸方もわからなかったので、プログラムは組めるけど仕様が理解できませんでした。
簿記3級を取得しようとネットで調べると、簿記3級は3カ月あれば余裕で取れるとあったので、とりあえず簿記3級の勉強をはじめることにしました。
勉強を始めたのはいいものの、育児と家事と仕事でなかなか勉強時間が取れない上に、簿記は苦手という意識がなかな拭えず、3級はほんとに苦戦しました。
(今は簿記1級の勉強中ですが、3級が一番しんどかった!)

簿記3級の勉強時間は
平日は細切れ時間で通勤時間中もいれて1日30分ぐらいが精一杯。
土日祝の休みの日は早起きして1時間くらい。
基礎が大事だと思っているので、資格を取ることが目的ではなく、しっかり理解することを目的に6カ月かかりました。
2015年6月14日 140回の簿記3級に合格しました。

さぁ簿記3級とったぞ!
仕様も理解できるハズ!!
…あれっ?
わからない…?えっ?
簿記3級があれば少しくらい理解できるかなと思ったのですが、建設業経理の会計ソフトだったので簿記3級じゃダメでした…

じゃ簿記3級の次に建設業経理士2級を取ろうかと思ったのですが、建設業経理士2級の本を読んでもよく理解できないんですね。
これは簿記2級の知識がないからかな?と考えて、先に簿記2級を取ろうと考えました。

簿記2級の勉強は工業簿記が入ってボリュームも3級の2倍。
家事、育児に加え、正社員への転職活動。就職。新しい会社での仕事。色々あり勉強時間はろくに取れず。
簿記2級の勉強時間は
平日は細切れ時間で通勤時間中もいれて1日30分ぐらいが精一杯。
土日祝の休みの日は早起きして1時間~2時間くらい。
基礎が大事だと思っているので、資格を取ることが目的ではなく、しっかり理解することを目的に1年かかりました。
2016年11月20日 144回の簿記2級に合格しました。
(わからない問題が1問あり96点でした。)
ネットで調べると2級の勉強時間は約6カ月とあるので、やっぱり倍ほどかかっていますね。

今は正社員で仕事中です。
仕事は.Net + Oracle。
もうね。目つぶってても書ける。
正直遣り甲斐も何にもない。
(でもここで簿記2級で勉強した工業簿記の知識が、ほんの少しですが役立ちました。)

簿記2級で簿記の勉強はやめる予定でした。
ネットで調べると1級はオーバースペックだとか、勉強時間が1級>>>>>>>>>>2級>3級だとか色々書かれているので、正直難しいかなと。
簿記1級より、本業のITの勉強をしようと思ってたんです。

でもうちの会社は
新しい言語や新しい仕事はチャレンジ案件としてアンダーフォーティ(30代、20代で構成される若手チーム)が担当し
オーバーフォーティ(40代以降で構成される年配チーム)は安定した大型案件の.Net(VB) + Oracle でチーム分けするので
どんなに新しい言語に挑戦したくても、アサインしてもらえない。
もう新しい言語は勉強しても無駄だなと。

会計システムもあるんですが、こちらもある社員の独占業務でアサインしてもらえない。
でも会計システムのほうは噛める可能性があるので、簿記1級とればアサインされるかも?
どうせこのままなら簿記2級の知識も頭から消えていきそうなので、なにもすることないなら簿記1級とっちゃおう。
簿記1級もってたら、万一会社が潰れても食べていけるかもしれない。
て軽い感じで簿記1級とることを決めました。
前回の転職活動で感じた「業務系のシステム開発で簿記の知識があることは、IT系の資格があるより有利かもしれない」事が1番の理由かもしれません。

今は簿記1級の勉強の70%ぐらいまで来ました。
家事に育児に仕事に、あいかわらず勉強時間はそんなに取れません。
ネットでは簿記1級の勉強時間は1年とあったので、倍の2年は最低でも必要かと思いますが、でもコツコツやればいつかは終わるハズ。
ここまでくると簿記も面白くなってきます。

そんな感じで簿記1級目指して、ゆるくがんばってます。