|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
Private Sub CommandButton1_Click() For i = Selection(1).Row To Selection(Selection.Count).Row '選択範囲の行でループ For ii = 8 To 100 If Cells(i, ii).Interior.Color = RGB(0, 0, 0) Then If ii - UserForm1.TextBox1.Value < 8 Then Exit For Cells(i, ii).Interior.ColorIndex = xlNone Cells(i, ii - UserForm1.TextBox1.Value).Interior.Color = RGB(0, 0, 0) End If If Cells(i, ii).Interior.Pattern = 15 Then If ii - UserForm1.TextBox1.Value < 8 Then Exit For Cells(i, ii).Interior.Pattern = xlPatternNone Cells(i, ii - UserForm1.TextBox1.Value).Interior.Pattern = 15 End If Next ii Next i End Sub Private Sub CommandButton2_Click() For i = Selection(1).Row To Selection(Selection.Count).Row '選択範囲の行でループ For ii = 100 To 8 Step -1 If Cells(i, ii).Interior.Color = RGB(0, 0, 0) Then If ii + UserForm1.TextBox1.Value > 100 Then Exit For Cells(i, ii).Interior.ColorIndex = xlNone Cells(i, ii + UserForm1.TextBox1.Value).Interior.Color = RGB(0, 0, 0) End If If Cells(i, ii).Interior.Pattern = 15 Then If ii + UserForm1.TextBox1.Value > 100 Then Exit For Cells(i, ii).Interior.Pattern = xlPatternNone Cells(i, ii + UserForm1.TextBox1.Value).Interior.Pattern = 15 End If Next ii Next i End Sub |
商圏の人口把握
jSTAT MAPにて商圏の人口把握
https://jstatmap.e-stat.go.jp/gis/nstac/
最初に利用申請をするとメールで仮IDとパスワードが送られてくる。
左側のメニュー上段のプロットをクリック。
画面が変わるので、
地図をクリックを選び、新規グループ(基本など)を作成する。
画面が変わるので、
プロット名(本店など)を入力し、地図上をクリックし、登録。
必要ならそのまま追加もできる。
次に同メニューのエリアをクリック。
新規グループを追加(商圏など)し、フリー円を選択。
地図をクリック、ドラッグし範囲を指定したら
エリア名(1kmなど)を入力して登録。
必要ならそのまま追加もできる。
次に同メニューの統計データをクリック。
H22国勢調査(小地域)→男女別人口総数及び世帯数→人口総数
を選択し、指標選択をクリック。
エリアの中の商圏を選択し、按分するを選択して、集計開始をクリック。
次に同メニューのレポートをクリック。
人口だけ知りたいのであれば、シンプルレポートをクリック。
さきほど作成した、男女別人口総数及び世帯数として表示されているので、
選択し、シンプルレポート作成をクリック。
リッチレポートの場合、上記で作業した統計データ作成まで不要。
(プロット、エリア、グラフが未作成でも実行できる)
新たに調査地点、半径を指定する。
プロットした情報を集計したい場合
会員情報などを地図上にプロットして、範囲内のデータ数を集計したい場合。
プロットメニューをクリック、ジオコーディングを選択してCSVをアップロードする。
左側のメニューで検索対象のレイヤーの上で右クリックして、プロット範囲検索/集計をクリックする。
円か多角形で範囲を選択して検索すると、対象の範囲内に存在するデータ数が得られる。
統計GISにて商圏の人口把握
http://e-stat.go.jp/SG2/eStatFlex/
右上、統計表プリセットから、
平成22年国勢調査集計単位別(人口)を選択し、マップに設定をクリック。
画面が変わるので、
左に表示されているデータを変更したい場合はフォルダアイコンをクリック。
(変更不要ならそのまま)
次に境界選択をクリックし、単一を選択して、距離を入力(1000mなど)
マップ上をクリックすると範囲に接触する地域の情報が見られる。
Windows Explorer 設定
アップデート事に環境を調整するのが面倒なのでデフォルト基本
・登録されている拡張子は表示しない
・保護されたオペレーティングシステムファイルを表示しない
だけ外す。
・リセットは、
プロパティ>カスタマイズ>フォルダの種類選ぶ
オプション>表示>フォルダをリセット>フォルダに適用
●オプション>表示>ナビゲーションウィンドウ
・すべてのフォルダを表示
・開いているフォルダまで展開
の2つにチェック。
●オプション>表示>ファイルおよびフォルダー
・隠しファイル、隠しフォルダー、および隠しドライブを表示する
・別のプロセスでフォルダーウィンドウを開く
チェックする。
・フォルダーとデスクトップの項目の説明をポップアップで表示する
・フォルダーのヒントにファイルサイズを表示する
・プレビューウィンドウでプレビューのハンドラーを表示する
・登録されている拡張子は表示しない
・保護されたオペレーティングシステムファイルを表示しない
・同期プロバイダーの通知を表示する
チェックを外す。
●表示を同じ種類のフォルダに適用
オプション>表示>フォルダーに適用
詳細表示(名前、作成日時、更新日時、アクセス日時、サイズ、属性)
として設定。
●フォルダの種類
フォルダ右クリック>カスタマイズ
から確認できる。
・全般
・ドキュメント
・ピクチャ
・ミュージック
・ビデオ
が存在する。
●フォルダ・ファイルが更新されるタイミング
・作成日時
作成
コピー
・更新日時
作成
保存
・アクセス日時
作成
移動
コピー
保存
●マイコンピュータ以下のミュージックやピクチャなど削除
HKEY_LOCAL_MACHINE>SOFTWARE>Microsoft>Windows>CurrentVersion>Explorer>MyComputer>NameSpace
以下を消す。
※HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\
ここの場合もある。
3Dオブジェクト:{0DB7E03F-FC29-4DC6-9020-FF41B59E513A}
ダウンロード:{088e3905-0323-4b02-9826-5d99428e115f}
ダウンロード:{374DE290-123F-4565-9164-39C4925E467B}
ピクチャ:{24ad3ad4-a569-4530-98e1-ab02f9417aa8}
ピクチャ:{3ADD1653-EB32-4cb0-BBD7-DFA0ABB5ACCA}
ミュージック:{3dfdf296-dbec-4fb4-81d1-6a3438bcf4de}
ミュージック:{1CF1260C-4DD0-4ebb-811F-33C572699FDE}
ドキュメント:{d3162b92-9365-467a-956b-92703aca08af}
ドキュメント:{A8CDFF1C-4878-43be-B5FD-F8091C1C60D0}
ビデオ:{f86fa3ab-70d2-4fc7-9c99-fcbf05467f3a}
ビデオ:{A0953C92-50DC-43bf-BE83-3742FED03C9C}
デスクトップ:{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}
●OneDrive、Creative Cloud Files、Dropbox非表示
HKEY_CURRENT_USER>Software>Classes>CLSID>
以下を修正。
OneDrive:{018D5C66-4533-4307-9B53-224DE2ED1FE6}
Creative Cloud Files:{0E270DAA-1BE6-48F2-AC49-4D4FA7552B34}
Dropbox:{E31EA727-12ED-4702-820C-4B6445F28E1A}
の
System.IsPinnedToNameSpaceTree
を0へ
・Regファイルの場合
|
1 2 3 4 5 6 7 8 9 10 |
Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Classes\CLSID\{0E270DAA-1BE6-48F2-AC49-4D4FA7552B34}] "System.IsPinnedToNameSpaceTree"=dword:00000000 [HKEY_CURRENT_USER\Software\Classes\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}] "System.IsPinnedToNameSpaceTree"=dword:00000000 [HKEY_CURRENT_USER\Software\Classes\CLSID\{04271989-C4D2-7DFD-3559-EB6A6AF3DF55}] "System.IsPinnedToNameSpaceTree"=dword:00000000 |
ここでは、Creative Cloud FilesとOneDrive(Personal+Business)を非表示にしている。
●CLSID調べ方①
Explorerで開いてアドレスバーから右クリック>住所をコピー
●CLSID調べ方②
HKEY_CURRENT_USER\Software\Classes\CLSID
以下にあるCLSIDがどこを指しているか確認する場合、
shell:::{}
ファイル名を指定して実行すれば確認できる。
●AutoHotkey 自分用ホームフォルダ作成
Runで対象フォルダを指定する。
sc07B & e::Run “G:\Dropbox\Home”
対象フォルダの中で特殊フォルダのショートカットを作成する場合
explorer shell:MyComputerFolder
explorer shell:::{20D04FE0-3AEA-1069-A2D8-08002B30309D}
●Explorer(PC)からScanSnap Folderを削除
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\
{591C1901-C0DA-4776-8450-F9806F6E9687}
を適当にリネーム
レジストリ
・HKEY_CURRENT_USER(HKCU):ログインユーザの設定
・HKEY_LOCAL_MACHINE(HKLM):全ユーザの設定/規定の設定
・HKEY_CLASSES_ROOT(HKCR):コンピュータが使う設定
・HKEY_USERS:ユーザに関する設定
・HKEY_CURRENT_CONFIG:起動時に読み込まれる設定
上3つは似た設定が多く、通常、HKCUの方が優先される。
HKLMでは再起動が必要だが、HKCUではログオン/オフ(AutoHotkeyなど)
HKLMはなるべく変更しない。
HKCRは、
HKEY_CURRENT_USER\Software\Classes
と
HKEY_LOCAL_MACHINE\SOFTWARE\Classes
を合わせたもの。ここを直接編集する必要はない模様。
・右クリックメニューを消す場合
|
1 2 3 4 5 6 7 8 9 10 11 12 |
reg delete HKLM\SOFTWARE\Classes\*\shellex\ContextMenuHandlers\InputDirectorShellIntegration reg delete HKLM\SOFTWARE\Classes\*\shellex\ContextMenuHandlers\PDFelement.ContextMenu reg delete HKLM\SOFTWARE\Classes\*\shellex\ContextMenuHandlers\DropboxExt reg delete HKLM\SOFTWARE\Classes\Directory\shellex\ContextMenuHandlers\DropboxExt reg delete HKLM\SOFTWARE\Classes\Directory\shellex\ContextMenuHandlers\InputDirectorShellIntegration reg delete HKLM\SOFTWARE\Classes\Directory\background\shellex\ContextMenuHandlers\DropboxExt reg delete HKLM\SOFTWARE\Classes\lnkfile\shellex\ContextMenuHandlers\DropboxExt reg delete "HKLM\SOFTWARE\Classes\lnkfile\shellex\ContextMenuHandlers\ESET Security Shell" reg delete HKLM\SOFTWARE\Classes\lnkfile\shellex\ContextMenuHandlers\NvAppShExt |
簿記 標準(総合)原価計算
個別原価計算、総合原価計算は実際原価計算の範囲。
予定計算も実際原価計算に含まれる計算方法。
標準原価計算は目標となる原価。
ただの概算予定ではなく、理想や統計などの根拠がある数字。
見積と標準原価の違い
見積は今現在の実力で計算する。売価設定に使ったり、リスクヘッジも考慮。
標準原価は目標となるため、原価を最小値で設定する。
実際原価計算との比較は必要。財務上では実際原価計算を利用する。
実際原価と比較するときは、「標準」ー「実際」となる。
原価標準の設定
期首に原価標準を決める。製品一つあたりの目標原価のことであり、
直接材料費、直接労務費、製造間接費のそれぞれ設定する。
直接材料 = 標準単価 × 標準消費量
直接労務 = 標準賃率 × 標準作業時間
製造間接費 = 標準配賦率 × 標準操業度
標準操業度とは配賦基準のことで直接作業時間など。
標準原価カードにまとめる。
直接材料費 125*8=1000
直接労務費 150*10=1500
製造間接費 250*10=2500
一個あたりの標準製造原価=5000
(一個あたり5000で作るのが目標。)
標準原価の計算
完成品原価
原価標準 × 完成品数量 = 完成品原価
月末仕掛品原価
原価標準 × 月末仕掛品数量 = 月末仕掛品原価
(直接労務費、製造間接費は加工費なので換算数量を使う)
例)
生産データ
・月初仕掛品 40(0.5)
・当月投入 240
・月末仕掛品 80(0.5)
・完成品 200
標準原価
・直接材料費 125×8=1000
・直接労務費 150×10=1500
・製造間接費 250×10=2500
・合計 5000

完成品原価 1000000
月末仕掛品原価 240000
月初仕掛品原価 120000
仕掛品勘定への記入
パーシャルプランとシングルプランがある。

仕掛品の当月投入以外は全て標準原価で記入し、
仕掛品の当月投入を標準原価にするか実際原価にするかの違い。
パーシャルプラン
当月投入を実際原価(原価差異は仕掛品勘定)
例)
生産データ
・月初仕掛品 40 (0.5)
・当月投入 240
・月末仕掛品 80 (0.5)
・完成品 200
標準原価
・直接材料費 125*8=1000
・直接労務費 150*10=1500
・製造間接費 250*10=2500
・合計 5000
・実際直接材料費 274320(127*2160)
・実際直接労務費 290400(165*1760)
・実際製造間接費 594000
仕掛品勘定への記入
仕訳)
前月繰越 標準 | 製品 標準
材料 実際 | 次月繰越 標準
賃金 実際 | 原価差異
製造間接費 実際 |
仕訳)
前月繰越 120000 | 製品 1000000
材料 274320 | 次月繰越 240000
賃金 290400 | 原価差異 38720
製造間接費 594000 |
_ 1278720 1278720
シングルプラン
当月投入を標準原価で記入。仕掛品勘定は全て標準原価で記入。
原価差異は、材料勘定、賃金勘定、製造間接費勘定で計算される。
原価差異分析
パーシャルプランの場合、
原価差異を要素別(材料、労務、経費)に分ける必要がある。
標準原価と実際原価の差異は当月投入で発生するので、
当月投入で、標準と実際の金額を計算する。(加工費は労務費、製造間接費を別に計算する)
例)
前項と同じ内容。

直接材料費差異 240000 ー 274320 = ー34320
直接労務費差異 330000 ー 290400 = 39600
製造間接費差異 550000 ー 594000 = ー44000
直接材料費差異
直接材料費差異は、
価格差異と数量差異に分けられる。

直接労務費差異
直接労務費差異は、
賃率差異
時間差異
に分けられる。

製造間接費差異
製造間接費差異は、
・予算差異
・操業度差異
・能率差異(変動、固定)
に分けられる。
能率差異は、変動費能率差異と固定費能率差異に分ける場合もある。(ひじきで覚える)

例)
※操業度=作業時間
標準間接費
¥250/時間 × 10時間 = ¥2500
製造間接費の実際発生額
594000
実際直接作業時間
1760
製造間接費の予算
462500 (変動費率 100,固定費予算 277500)
※予算=基準
基準操業度
1850
生産データ
・月初仕掛品 40 (0.5)
・当月投入 240
・月末仕掛品 80 (0.5)
・完成品 200

Slypheedのメールをコマンドで作成
添付やアドレス等をバッチで設定して起動。あとFOR文のメモ有り。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
rem 通常forに近い処理 for /L %%i in (1,1,10) do ( echo %%i ) pause rem パスを渡す処理 rem カレントディレクトリのbat一覧を取得 for %%i in (C:\xxx\xxx\*.bat) do ( echo %%i ) pause rem 上記と同じだが変数iに入る時フルパスで入らない。 rem カレントディレクトリのbat一覧を取得 for %%i in (*.bat) do ( echo %%i ) pause rem Slypheedでメール自動作成。添付を直接指定 Sylpheed-3.5.1\sylpheed.exe --compose "mail@xxx.com,mail@xxx.com?subject=xxx&body=xxx" --attach "%~dp0Attach\a.pdf" "%~dp0Attach\b.pdf" rem Slypheedでメール自動作成。forで指定 @echo off setlocal enabledelayedexpansion for %%i in (%~dp0Attach\*.pdf) do ( set var="%%i" !var! ) Sylpheed-3.5.1\sylpheed.exe --compose "mail@xxx.com,mail@xxx.com?subject=xxx&body=xxx" --attach %var% |
ちょっと修正。変数にまとめた。
bodyの中で改行したかったけど、改行コードもダメだし、一旦保留。
あとconfigの設定も指定しないとダメだった。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
@echo off setlocal enabledelayedexpansion for %%i in (%~dp0Attach\*.pdf) do ( set attach="%%i" !attach! ) REM 送信先 set address=^ mail@xxx.com,mail@xxx.jp set subject=xxx set body=xxx Sylpheed-3.5.1\sylpheed.exe --compose "%address%?subject=%subject%&body=%body%" --attach %attach% --configdir %~dp0Sylpheed-3.5.1\config |
相対パスのショートカットを作成
%windir%\System32\rundll32.exe url.dll,FileProtocolHandler “Sylpheed-3.5.1\sylpheed.exe”
として作業フォルダーを空白にする。
C# コントロール関係実験
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace shape_app { public partial class Form1 : Form { Rectangle r; //Paintイベント用 int count = 0; public Form1() { InitializeComponent(); r = new Rectangle(100, 100, 100, 100); //ブルブル用 this.timer1.Start(); } private void cloneToolStripMenuItem_Click(object sender, EventArgs e) { //メニューのクリックでシェイプの追加(ユーザコントロール) Shape s = new Shape(); s.Width = 100; s.Height = 100; this.Controls.Add(s); } private void Form1_MouseMove(object sender, MouseEventArgs e) { //マウスの座標を表示 this.label1.Text = "X:" + e.Location.X.ToString() + " Y:" + e.Location.Y.ToString(); } private void timer1_Tick(object sender, EventArgs e) { //シェイプをブルブルさせる if(this.shape1.Left < 100) { this.shape1.Left += 1; } else { this.shape1.Left -= 1; } } private void Form1_Paint(object sender, PaintEventArgs e) { /* FormのPaintイベント。何もしないと発動しないが、コントロールの移動など 再描画の度に発動している。 */ System.Diagnostics.Debug.Print((count++).ToString()); /* 以下の長方形も実際はイベント毎に再描画している。 サンプルなどではPaintイベントのeからGraphicsプロパティを取得する例がある。 */ Pen p1 = new Pen(Color.Red); e.Graphics.DrawRectangle(p1, new Rectangle(50, 50, 100, 10)); //この長方形はマウスクリックが内外どちらか判定できる。 Pen p2 = new Pen(Color.Blue); e.Graphics.DrawRectangle(p2, r); } private void Form1_MouseDown(object sender, MouseEventArgs e) { Point clickPoint = new Point(e.X, e.Y); if (r.Contains(clickPoint)) { MessageBox.Show("内 です。"); } else { MessageBox.Show("外 です。"); } } } } |
C++ Win環境でコマンドラインから
C#のコンパイラはcscで、
C:\windows\Microsoft.NET\Framework\v4.0.30319
にある。
C++は何かと思うと、cl.exeで、
C:\Program Files\Microsoft Visual Studio 14.0\VC\bin
にあるとのことなので、環境変数のパスに以下を加える。
その他の環境変数includeに以下を加える。
C:\Program Files\Microsoft Visual Studio 14.0\VC\include
この段階だと、
corecrt.h
が無いとエラーがでる。
以下のパスもincludeに加える。
C:\Program Files\Windows Kits\10\Include\10.0.10240.0\ucrt
その他の環境変数libに以下を加える。
C:\Program Files\Microsoft Visual Studio 14.0\VC\lib
この段階だと、
uuid.lib
が無いとエラーがでる。
環境変数libに以下を加える。
C:\Program Files\Microsoft SDKs\Windows\v7.1A\Lib
この段階だと、
libucrt.lib
が無いとエラーがでる。
環境変数libに以下を加える。
C:\Program Files\Windows Kits\10\Lib\10.0.10240.0\ucrt\x86
コンパイルのコマンドは以下。
cl /EHsc test.cpp
とりあえずここまでで動いた。
実際この辺りの処理は
C:\Program Files\Microsoft Visual Studio 14.0\Common7\Tools\vsvars32.bat
で自動化されている。
Windows.h
が無い場合、以下をinclude環境変数に追加。
C:\Program Files\Microsoft SDKs\Windows\v7.1A\Include
同時にLINK2019の未解決の外部シンボルのエラーがでる。
C:\Program Files\Windows Kits\8.1\Lib\winv6.3\um\x86
をlibに追加して、コンパイル時、
cl /EHsc test.cpp user32.lib
とする。
とりあえず最初に以下をやってみる。
https://msdn.microsoft.com/ja-jp/library/ff381409(v=vs.85).aspx
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
#ifndef UNICODE #define UNICODE #endif #include <windows.h> LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam); int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE, PWSTR pCmdLine, int nCmdShow) { const wchar_t CLASS_NAME[] = L"Sample Window Class"; WNDCLASS wc = { }; wc.lpfnWndProc = WindowProc; wc.hInstance = hInstance; wc.lpszClassName = CLASS_NAME; RegisterClass(&wc); HWND hwnd = CreateWindowEx( 0, CLASS_NAME, L"Learn to Program Windows", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL ); if (hwnd == NULL) { return 0; } ShowWindow(hwnd, nCmdShow); MSG msg = { }; while (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return 0; } LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch (uMsg) { case WM_DESTROY: PostQuitMessage(0); return 0; case WM_PAINT: { PAINTSTRUCT ps; HDC hdc = BeginPaint(hwnd, &ps); FillRect(hdc, &ps.rcPaint, (HBRUSH) (COLOR_WINDOW+1)); EndPaint(hwnd, &ps); } return 0; } return DefWindowProc(hwnd, uMsg, wParam, lParam); } |
VBA 生産高集計
以前作った生産高を集計するファイルにそのまま機能を追加。
エクセルの工程管理でガントチャートっぽく運用している場合、
罫線で表を作って、色で進捗を管理する組み合わせは面倒になりやすい。
罫線をオンオフできると管理が楽になる。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 |
Sub 罫線トグル() Application.ScreenUpdating = False asn = ActiveSheet.Name Dim sc As Integer ' シート数 sc = ActiveWorkbook.Sheets.Count ReDim sn(sc, 2) As String 'シート名,フォーム数 For i = 1 To sc Step 1 If Sheets(i).Name <> "集計" Then sn(i, 1) = Sheets(i).Name sn(i, 2) = fcount(Sheets(i).Name) If sn(i, 2) = -1 Then MsgBox sn(i, 1) & "シートが適切な工程表ではないため罫線の描画ができません。" Exit Sub End If End If Next i If Sheets(1).Range("H5").Borders(xlEdgeRight).LineStyle = -4142 Then '罫線無し borderState = False ElseIf Sheets(1).Range("H5").Borders(xlEdgeRight).LineStyle = -4118 Then '罫線有り borderState = True End If For i = 1 To sc Step 1 Call BorderToggle(sn(i, 1), sn(i, 2), borderState) 'シート名,フォーム数 Next i Sheets(asn).Activate Application.ScreenUpdating = True MsgBox "終了しました。" End Sub Sub BorderToggle(sheetName, formQty, borderState) If sheetName = "" Then Exit Sub With Sheets(sheetName) If borderState = True Then '罫線有り rowTop = 5 rowBtn = 24 For f = 1 To formQty .Range(.Cells(rowTop, 8), .Cells(rowBtn, 100)).Borders.LineStyle = xlLineStyleNone '斜線は個別に処理しないと消えなかった。 .Range(.Cells(rowTop, 8), .Cells(rowBtn, 100)).Borders(xlDiagonalDown).LineStyle = -4142 .Range(.Cells(rowTop, 8), .Cells(rowBtn, 100)).Borders(xlDiagonalUp).LineStyle = -4142 .Range(.Cells(rowTop, 8), .Cells(rowBtn, 100)).Borders(xlEdgeTop).LineStyle = 1 .Range(.Cells(rowTop, 8), .Cells(rowBtn, 100)).Borders(xlEdgeRight).LineStyle = 1 .Range(.Cells(rowTop, 8), .Cells(rowBtn, 100)).Borders(xlEdgeBottom).LineStyle = 1 .Range(.Cells(rowTop, 8), .Cells(rowBtn, 100)).Borders(xlEdgeLeft).LineStyle = 1 rowTop = rowTop + 25 rowBtn = rowBtn + 25 Next f End If If borderState = False Then '罫線無し rowTop = 5 rowBtn = 24 For f = 1 To formQty .Range(.Cells(rowTop, 8), .Cells(rowBtn, 100)).Borders(xlInsideVertical).LineStyle = -4118 .Range(.Cells(rowTop, 8), .Cells(rowBtn, 100)).Borders(xlInsideHorizontal).LineStyle = 1 '縦のWeightが違う線の処理 For col = 10 To 97 Step 3 .Range(.Cells(rowTop, col), .Cells(rowBtn, col)).Borders(xlEdgeRight).LineStyle = 1 Select Case col Case 22, 40, 55, 70, 85 .Range(.Cells(rowTop, col), .Cells(rowBtn, col)).Borders(xlEdgeRight).Weight = -4138 End Select Next col For col = 8 To 38 Step 3 '月末部の斜線処理 If .Cells(4, col).Value = "" Then .Range(.Cells(rowTop, col), .Cells(rowBtn, col + 2)).Borders(xlDiagonalUp).LineStyle = 1 End If Next col rowTop = rowTop + 25 rowBtn = rowBtn + 25 Next f End If End With End Sub Sub 生産高集計() '[集計]というシートがあると削除 '個別シートのフォーム数はA列で判断 '(24なら1つ49なら2つというように探す、フォームが崩れているとエラーを返す) 'B列が記入されていて、尚且つ[数量]と[単価]が記入されている行のみ処理 '日付はG列に記入があれば、そちらを使用、なければF列を使用 Application.ScreenUpdating = False For Each ws In Worksheets If ws.Name = "集計" Then If vbYes = MsgBox("集計シートが存在します。削除しますか?", vbYesNo) Then Worksheets("集計").Delete Else Exit Sub End If End If Next ws Dim sc As Integer ' シート数 sc = ActiveWorkbook.Sheets.Count ReDim sn(sc, 2) As String 'シート名,フォーム数 For i = 1 To sc Step 1 sn(i, 1) = Sheets(i).Name sn(i, 2) = fcount(sn(i, 1)) ' fcount call If sn(i, 2) = -1 Then MsgBox sn(i, 1) & "シートが適切な工程表ではないため集計できません。" Exit Sub End If Next i Sheets.Add after:=ActiveSheet ActiveSheet.Name = "集計" If 納期集計(sn(1, 1)) = -1 Then Exit Sub '納期集計 call For i = 1 To sc Step 1 Call main(sn(i, 1), sn(i, 2), i) 'シート名,フォーム数,カウンタ Call main2(sn(i, 1), sn(i, 2), i) 'シート名,フォーム数,カウンタ Next i With Sheets("集計") .Range("J1").Value = "班名" .Range("K1").Value = "生産額" .Range("L1").Value = "目盛" .Range("M1").Value = "生産日数" .Range("N1").Value = "生産額/日" .Range("P1").Value = "目盛" .Range("Q1").Value = "未生産日数" .Columns("A:Q").AutoFit .Activate End With Application.ScreenUpdating = True MsgBox "終了しました。" End Sub Sub main(ByVal sn As String, ByVal fc As Integer, ByVal c As Integer) 'シート名,フォーム数,カウンタ Worksheets("集計").Cells(c, 1).Value = sn Worksheets("集計").Cells(c + 1, 10).Value = sn Worksheets(sn).Activate buf = 0 For r = (fc * 25 - 1) To 5 Step -1 '- If ActiveSheet.Range("B" & r & "").Value <> "" Then '型式が記入されている '-- 'ActiveSheet.Range("B" & r & "").Select If IsNumeric(ActiveSheet.Range("E" & r & "").Value) And IsNumeric(ActiveSheet.Range("CZ" & r & "").Value) Then '数量と単価が数値 '--- buf = buf + (ActiveSheet.Range("E" & r & "").Value * ActiveSheet.Range("CZ" & r & "").Value) 'ここから顧客別金額 ------------------------------------------------- If ActiveSheet.Range("CX" & r & "").Value = "" Then cus = "空白" Else cus = 文字列調整(ActiveSheet.Range("CX" & r & "").Value) End If pri = ActiveSheet.Range("E" & r & "").Value * ActiveSheet.Range("CZ" & r & "").Value i = 1 Do While Worksheets("集計").Range("D" & i & "").Value <> "" If Worksheets("集計").Range("D" & i & "").Value = cus Then Worksheets("集計").Range("E" & i & "").NumberFormatLocal = "#,##0" Worksheets("集計").Range("E" & i & "").Value = Worksheets("集計").Range("E" & i & "").Value + pri pri = 0 End If i = i + 1 Loop If pri <> 0 Then Worksheets("集計").Range("D" & i & "").Value = cus Worksheets("集計").Range("E" & i & "").NumberFormatLocal = "#,##0" Worksheets("集計").Range("E" & i & "").Value = pri End If 'ここまで顧客別金額 ここから納期別金額 ------------------------------------------------- lt = ActiveSheet.Range("F" & r & "").Value If ActiveSheet.Range("G" & r & "").Value <> "" Then lt = ActiveSheet.Range("G" & r & "").Value If IsDate(lt) = False Then Worksheets("集計").Range("H13").NumberFormatLocal = "#,##0" Worksheets("集計").Range("H13").Value = Worksheets("集計").Range("H13").Value + (ActiveSheet.Range("E" & r & "").Value * ActiveSheet.Range("CZ" & r & "").Value) End If If IsDate(lt) Then m = Month(lt) d = Day(lt) Select Case d Case 21 To 31 m = m + 1 If m = 13 Then m = 1 Case 1 To 20 End Select For i = 1 To 12 If m = Worksheets("集計").Range("G" & i & "").Value Then Worksheets("集計").Range("H" & i & "").NumberFormatLocal = "#,##0" Worksheets("集計").Range("H" & i & "").Value = Worksheets("集計").Range("H" & i & "").Value + (ActiveSheet.Range("E" & r & "").Value * ActiveSheet.Range("CZ" & r & "").Value) End If Next i End If 'ここまで納期別金額 ------------------------------------------------- End If '--- End If '-- Select Case r Case 105, 80, 55, 30 r = r - 5 End Select Next r ' - Worksheets("集計").Cells(c, 2).NumberFormatLocal = "#,##0" Worksheets("集計").Cells(c, 2).Value = buf Worksheets("集計").Cells(c + 1, 11).NumberFormatLocal = "#,##0" Worksheets("集計").Cells(c + 1, 11).Value = buf End Sub Function fcount(ByVal sn As String) As Integer Dim rc As Integer '行数 Dim fc As Integer 'フォーム数 Sheets(sn).Activate rc = ActiveSheet.UsedRange.Rows.Count For i = ActiveSheet.UsedRange.Rows.Count To 1 Step -1 'フォーム数を確認(A列で判断) If Range("A" & i & "").Value <> "" Then Exit For Next i Select Case i Case 24 fc = 1 Case 49 fc = 2 Case 74 fc = 3 Case 99 fc = 4 Case 124 fc = 5 Case Else fc = -1 End Select fcount = fc End Function Function 文字列調整(ByVal cus_str As String) cus_str = Replace(cus_str, vbLf, "") cus_str = StrConv(cus_str, vbWide) cus_str = Replace(cus_str, " ", " ") '空白4つまで1つに置換する cus_str = Replace(cus_str, " ", " ") cus_str = Trim(cus_str) cus_str = Replace(cus_str, "㈱", "") cus_str = Replace(cus_str, "㈲", "") 文字列調整 = cus_str End Function Function 納期集計(ByVal sn As String) mth = Replace(Sheets(sn).Range("H2").Value, "月", "") Select Case mth Case 1 To 12 For i = 1 To 12 Sheets("集計").Range("G" & i & "").Value = mth + i If Sheets("集計").Range("G" & i & "").Value > 12 Then Sheets("集計").Range("G" & i & "").Value = Sheets("集計").Range("G" & i & "").Value - 12 End If Next i Case Else MsgBox "月が正しく記入されていません。" mth = -1 End Select Sheets("集計").Range("G13").Value = "未定" 納期集計 = mth End Function Sub main2(ByVal sn As String, ByVal fc As Integer, ByVal c As Integer) 'シート名,フォーム数,カウンタ Worksheets(sn).Activate buf1 = 0 buf2 = 0 For cc = 8 To 100 For r = 5 To (fc * 25 - 1) If ActiveSheet.Cells(4, cc).Interior.Color = RGB(255, 255, 0) Then Exit For If ActiveSheet.Cells(r, cc).Interior.Color = RGB(0, 0, 0) Then buf1 = buf1 + 1 '黒塗りつぶし Exit For End If 'ActiveSheet.Cells(r, cc).Value = r & "," & cc If r = (fc * 25 - 1) Then buf2 = buf2 + 1 '塗りつぶしなし Select Case r Case 99, 74, 49, 24 r = r + 5 End Select Next r Next cc Worksheets("集計").Cells(c + 1, 12).Value = buf1 '目盛 Worksheets("集計").Cells(c + 1, 13).NumberFormatLocal = "0.0" ' Worksheets("集計").Cells(c + 1, 13).Value = buf1 / 3 '生産日数 Worksheets("集計").Cells(c + 1, 14).NumberFormatLocal = "#,##0" If Worksheets("集計").Cells(c + 1, 13) <> 0 Then Worksheets("集計").Cells(c + 1, 14).Value = (Worksheets("集計").Cells(c + 1, 11)) / (Worksheets("集計").Cells(c + 1, 13)) '生産額/日 End If Worksheets("集計").Cells(c + 1, 16).Value = buf2 Worksheets("集計").Cells(c + 1, 17).NumberFormatLocal = "0.0" ' Worksheets("集計").Cells(c + 1, 17).Value = buf2 / 3 '未生産日数 End Sub |
Bootstrap基礎
Gridシステムについて
containerクラスで囲うと余白ができる
全体の横幅12に分割すると考える。
先ず、rowクラスを作り、その中に
col-sm-12クラスのようにして追加いく。
col-sm-12のsmの部分は、該当px以下のときに適応される。
xs = auto
sm = 750px
md = 970px
lg = 1170px
が種類。
hidden-xs
visible-xs
のように該当サイズになると見せたり消したりもできる。
tableタグ
tableタグにtableクラスを付けるだけで見た目が変わる。
その他にも、tableクラスと合わせて
table-stripedクラス(色分)
table-borderedクラス(枠線)
table-hoverクラス(カーソル反応)
table-condensed(縮小)
などがある。
trタグではwarningクラスと付けると行に色が付く。
formタグ
先ずform-groupクラスで囲う。
その中にlabelタグとinputタグを入れる。
labeタグにはcontrol-labelクラスを付けて、
inputタグには、form-controlクラスを付ける。
buttonタグには、
btn btn-primaryクラス等を付ける。
formタグにform-inlineクラスを付けと横並び。
glyphiconsとボタン
<i class=”glyphicon glyphicon-book”></i>
のように使う。
btn btn-primaryクラス等でボタンとなる。
ボタンをグループ化スル場合、要素を
btn-groupクラスで囲う。
dropdown
ボタングループを作って、ボタンを入れて、そのボタンに、
dropdown-toggleクラスを付けのと、
data-toggle属性にdropdownを付ける。
メニューは、ulタグにdropdown-menuクラスを付ける。
<button class=”btn btn-primary dropdown-toggle” data-toggle=”dropdown” >
xxx <span class=”caret”></span>
</button>
<ul>
<li class=”dropdown-menu”>xxx</li>
</ul>
のような感じ。
最大幅を固定
@media(min-width:750px){.container{max-width:750px;}}
この場合750pxより大きい場合に適用。
グリッドのネスト
ネストさせる場合。
.row > .col > .row > .col
にする。
子になった方も12で分割される。
適当に実験
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Bootstrap 101 Template</title> <link href="css/bootstrap.min.css" rel="stylesheet"> <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> <!--[if lt IE 9]> <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script> <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> <![endif]--> </head> <body> <?php if(array_key_exists("n",$_GET) && $_GET["n"] !== ""){ echo $_GET["n"]; } ?> <div class="container"> <div class="row"> <div class="col-sm-4" style="background:red;"> <form method="get" class="form-horizontal row"> <div class="form-group"> <label class="control-label col-sm-4">名前</label> <div class="col-sm-8"> <input type="text" class="form-control" name="n"> </div> </div> <div class="form-group"> <div class="col-sm-offset-4 col-sm-12"> <input type="submit" class="btn"> </div> </div> </form> </div> <div class="col-sm-8" style="background:gray;">right</div> </div> </div> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <script src="js/bootstrap.min.js"></script> </body> </html> |
簿記 工業簿記財務諸表
製造原価報告書
製造原価報告書は、仕掛品勘定と対応している。
損益計算書の売上原価の内訳は製品勘定と対応している。

例)
直接材料
・月初有高 300
・当月仕入高 1200
・月末有高 250
賃金 直接工賃
・月初未払額 375
・当月支払額 1800
・月末未払額 325
賃金 間接工賃
・月初未払額 50
・当月支払額 450
・月末未払額 100
経費
・水道光熱費(測定額) 450
・保険料(支払額) 850
・減価償却費(月額) 1500
製造間接費実際配賦額 3300
仕掛品
・月初有高 3250
・月末有高 2350
製品
・月初有高 3800
・月末有高 3150
販管費 650

製造原価報告書
直接材料費
_月初材料棚卸高 300
_当月材料仕入高 1200
_合計 =1500
_月末材料棚卸高 ー250 =1250
直接労務費 1750
製造間接費
_間接高賃金 500
_水道光熱費 450
_保険料 850
_減価償却費 1500 =3300
当月総製造費用 6300
月初仕掛品棚卸高 3250
合計 =9550
月末仕掛品棚卸高 ー2350
当月製品製造原価 7200
損益計算書
売上高 15000
売上原価
_月初製品棚卸高 3800
_当月製品製造原価 7200
_合計 =11000
_月末製品棚卸高 3150 =7850
売上総利益 7150
販売費及び一般管理費 ー650
営業利益 6500