{"id":775,"date":"2017-01-17T04:06:40","date_gmt":"2017-01-16T19:06:40","guid":{"rendered":"http:\/\/okamurax.com\/?p=775"},"modified":"2017-01-17T04:08:55","modified_gmt":"2017-01-16T19:08:55","slug":"c-vba-%e3%82%bf%e3%82%a4%e3%83%a0%e3%82%ab%e3%83%bc%e3%83%89%e3%82%a2%e3%83%97%e3%83%aa","status":"publish","type":"post","link":"https:\/\/appbay.org\/?p=775","title":{"rendered":"C# VBA \u30bf\u30a4\u30e0\u30ab\u30fc\u30c9\u30a2\u30d7\u30ea"},"content":{"rendered":"<p>\u4ee5\u524d\u4f5c\u3063\u305f\u30bf\u30a4\u30e0\u30ab\u30fc\u30c9\u30a2\u30d7\u30ea\u3002\u6c0f\u540d\u306a\u3069\u306f\u30d5\u30a9\u30fc\u30e0\u306b\u76f4\u63a5\u3002<\/p>\n<p>Form1.cs<\/p>\n<pre class=\"lang:c# decode:true \">using System;\r\nusing System.Collections.Generic;\r\nusing System.ComponentModel;\r\nusing System.Data;\r\nusing System.Drawing;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading.Tasks;\r\nusing System.Windows.Forms;\r\nusing System.Collections;\r\nusing System.Data.OleDb;\r\nusing System.Drawing.Text;\r\n\r\nnamespace WindowsFormsApplication1\r\n{\r\n    public partial class Form1 : Form\r\n    {\r\n        public Form1()\r\n        {\r\n            InitializeComponent();\r\n            this.WindowState = FormWindowState.Maximized;\r\n            this.label2.Font = new System.Drawing.Font(\"7barP\",110);\r\n            this.label1.Text = DateTime.Now.ToString(\"yyyy\/MM\/dd dddd\");\r\n            this.label2.Text = DateTime.Now.ToString(\"HH:mm:ss\");\r\n            attach_function();\r\n            this.timer1.Start();\r\n        }\r\n        private void timer1_Tick(object sender, EventArgs e)\r\n        {\r\n            this.label1.Text = DateTime.Now.ToString(\"yyyy\/MM\/dd dddd\");\r\n            this.label2.Text = DateTime.Now.ToString(\"HH:mm:ss\");\r\n        }\r\n        private Control[] get_controls(Control control_top)\r\n        {\r\n            ArrayList tmp = new ArrayList();\r\n            foreach(Control ctrl in control_top.Controls)\r\n            {\r\n                tmp.Add(ctrl);\r\n                if (ctrl is TabControl)\r\n                {\r\n                    foreach (Control tb in ctrl.Controls)\r\n                    {\r\n                        foreach (Control btn in tb.Controls) tmp.Add(btn);\r\n                    } \r\n                }\r\n            }\r\n            return (Control[])tmp.ToArray(typeof(Control));\r\n        }\r\n        public void attach_function()\r\n        {\r\n            Control[] controls = get_controls(this);\r\n            foreach (Control ctrl in controls)\r\n            {\r\n                if (ctrl is Button) ((Button)ctrl).Click += new EventHandler(click_button);\r\n                if (ctrl is RadioButton) ((RadioButton)ctrl).CheckedChanged += new EventHandler(clear_labels);\r\n            }\r\n        }\r\n        public void click_button(object sender, EventArgs e)\r\n        {\r\n            clear_labels();\r\n            if (((Button)sender).Text == \"\u30ea\u30bb\u30c3\u30c8\") return;\r\n            if (get_check_state() != null)\r\n            {\r\n                connction_database(get_check_state().Text, ((Button)sender).Text);\r\n            }\r\n            else\r\n            {\r\n                connction_database(\"\", ((Button)sender).Text);\r\n            }\r\n        }\r\n        public void clear_labels(object sender = null, EventArgs e = null)\r\n        {\r\n            this.label3.Text = \"00\/00 00:00:00\";\r\n            this.label4.Text = \"00\/00 00:00:00\";\r\n            this.label5.Text = \"00\/00 00:00:00\";\r\n            this.label6.Text = \"00\/00 00:00:00\";\r\n        }\r\n        public void clear_check_state()\r\n        {\r\n            this.radioButton1.Checked = false;\r\n            this.radioButton2.Checked = false;\r\n            this.radioButton3.Checked = false;\r\n            this.radioButton4.Checked = false;\r\n            this.checkBox1.Checked = false;\r\n        }\r\n        public void save_log(string check_text, string user)\r\n        {\r\n            using (System.IO.StreamWriter s = new System.IO.StreamWriter(System.IO.Path.GetDirectoryName(Application.ExecutablePath) + @\"\\log.txt\", true, System.Text.Encoding.GetEncoding(\"shift_jis\")))\r\n            {\r\n                s.Write(user + \",\" + check_text + \",\" + DateTime.Now.ToString(\"yyyy\/MM\/dd HH:mm:ss\") + \"\\r\\n\");\r\n            }\r\n        }\r\n        public RadioButton get_check_state()\r\n        {\r\n            Control[] controls = get_controls(this);\r\n            foreach (Control ctrl in controls)\r\n            {\r\n                if (ctrl is RadioButton)\r\n                {\r\n                    if (((RadioButton)ctrl).Checked) return (RadioButton)ctrl;\r\n                }\r\n            }\r\n            return null;\r\n        }\r\n        public void connction_database(String checked_text, String button_text)\r\n        {\r\n            String start_day = DateTime.Now.ToString(\"yyyy\/MM\/dd 00:00:01\");\r\n            if (this.checkBox1.Checked == true) start_day = DateTime.Now.AddDays(-1).ToString(\"yyyy\/MM\/dd 00:00:01\");\r\n            using (OleDbConnection cn = new OleDbConnection(@\"Provider=Microsoft.JET.OLEDB.4.0;Data Source=\" + System.IO.Path.GetDirectoryName(Application.ExecutablePath) + @\"\\Tc_Db.mdb;\"))\r\n            {\r\n                OleDbTransaction transaction = null;\r\n                try\r\n                {\r\n                    cn.Open();\r\n                    if (checked_text != \"\")\r\n                    {\r\n                        OleDbCommand cmd_main = new OleDbCommand(\"SELECT \u51fa\u793e,\u9000\u793e,\u5916\u51fa,\u5e30\u793e FROM Tc_Tbl WHERE \u65e5\u4ed8 = #\" + start_day + \"# AND \u6c0f\u540d = '\" + button_text + \"'\", cn);\r\n                        using (OleDbDataReader dr_main = cmd_main.ExecuteReader())\r\n                        {\r\n                            if (dr_main.Read())\r\n                            {\r\n                                if (dr_main[checked_text].ToString() == \"\")\r\n                                {\r\n                                    transaction = cn.BeginTransaction(IsolationLevel.ReadCommitted);\r\n                                    OleDbCommand cmd = new OleDbCommand(\"UPDATE Tc_Tbl SET \" + checked_text + \" = '\" + DateTime.Now.ToString(\"yyyy\/MM\/dd HH:mm:ss\") + \"' WHERE \u65e5\u4ed8 = #\" + start_day + \"# AND \u6c0f\u540d = '\" + button_text + \"'\", cn);\r\n                                    cmd.Transaction = transaction;\r\n                                    cmd.ExecuteNonQuery();\r\n                                    transaction.Commit();\r\n                                    save_log(checked_text, button_text);\r\n                                    \/\/MessageBox.Show(checked_text + \"\u3092\u767b\u9332\u3057\u307e\u3057\u305f\u3002\");\r\n                                }\r\n                                else if (dr_main[checked_text].ToString() != \"\")\r\n                                {\r\n                                    MessageBox.Show(\"\u65e2\u306b\" + checked_text + \"\u306f\u767b\u9332\u3055\u308c\u3066\u3044\u307e\u3059\u3002\");\r\n                                }\r\n                                if (dr_main.Read()) MessageBox.Show(DateTime.Now.ToString(\"yyyy\/MM\/dd\") + \"\u304c\u8907\u6570\u884c\u3042\u308a\u307e\u3059\u3002\u7de8\u96c6\u3088\u308a\u524a\u9664\u3057\u3066\u304f\u3060\u3055\u3044\u3002\");\r\n                            }\r\n                            else\r\n                            {\r\n                                transaction = cn.BeginTransaction(IsolationLevel.ReadCommitted);\r\n                                OleDbCommand cmd = new OleDbCommand(\"INSERT INTO Tc_Tbl (\u65e5\u4ed8,\" + checked_text + \",\u6c0f\u540d) VALUES ('\" + start_day + \"', '\" + DateTime.Now.ToString(\"yyyy\/MM\/dd HH:mm:ss\") + \"', '\" + button_text + \"')\", cn);\r\n                                cmd.Transaction = transaction;\r\n                                cmd.ExecuteNonQuery();\r\n                                transaction.Commit();\r\n                                save_log(checked_text, button_text);\r\n                                \/\/MessageBox.Show(checked_text + \"\u3092\u767b\u9332\u3057\u307e\u3057\u305f\u3002\");\r\n                            }\r\n                        }\r\n                        clear_check_state();\r\n                    }\r\n                    OleDbCommand cmd_to_labels = new OleDbCommand(\"SELECT \u51fa\u793e,\u9000\u793e,\u5916\u51fa,\u5e30\u793e FROM Tc_Tbl WHERE \u65e5\u4ed8 = #\" + start_day + \"# AND \u6c0f\u540d = '\" + button_text + \"'\", cn);\r\n                    using(OleDbDataReader dr_to_labels = cmd_to_labels.ExecuteReader())\r\n                    {\r\n                        if (dr_to_labels.Read())\r\n                        {\r\n                            if (dr_to_labels[\"\u51fa\u793e\"].ToString() != \"\") label3.Text = DateTime.Parse(dr_to_labels[\"\u51fa\u793e\"].ToString()).ToString(\"MM\/dd HH:mm:ss\");\r\n                            if (dr_to_labels[\"\u9000\u793e\"].ToString() != \"\") label4.Text = DateTime.Parse(dr_to_labels[\"\u9000\u793e\"].ToString()).ToString(\"MM\/dd HH:mm:ss\");\r\n                            if (dr_to_labels[\"\u5916\u51fa\"].ToString() != \"\") label5.Text = DateTime.Parse(dr_to_labels[\"\u5916\u51fa\"].ToString()).ToString(\"MM\/dd HH:mm:ss\");\r\n                            if (dr_to_labels[\"\u5e30\u793e\"].ToString() != \"\") label6.Text = DateTime.Parse(dr_to_labels[\"\u5e30\u793e\"].ToString()).ToString(\"MM\/dd HH:mm:ss\");\r\n                        }\r\n                        if (dr_to_labels.Read()) MessageBox.Show(DateTime.Now.ToString(\"yyyy\/MM\/dd\") + \"\u304c\u8907\u6570\u884c\u3042\u308a\u307e\u3059\u3002\u7de8\u96c6\u3088\u308a\u524a\u9664\u3057\u3066\u304f\u3060\u3055\u3044\u3002\");\r\n                    }\r\n                }\r\n                catch\r\n                {\r\n                    MessageBox.Show(\"\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306b\u63a5\u7d9a\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u7ba1\u7406\u8005\u306b\u9023\u7d61\u3057\u3066\u304f\u3060\u3055\u3044\u3002\");\r\n                    try\r\n                    {\r\n                        transaction.Rollback();\r\n                        return;\r\n                    }\r\n                    catch\r\n                    {\r\n                        return;\r\n                    }\r\n                }\r\n                finally\r\n                {\r\n                    cn.Close();\r\n                }\r\n            }\r\n        }\r\n        private void button3_Click(object sender, EventArgs e)\r\n        {\r\n            clear_labels();\r\n            clear_check_state();\r\n        }\r\n        private void \u7de8\u96c6ToolStripMenuItem1_Click(object sender, EventArgs e)\r\n        {\r\n            Form2 f = new Form2(get_controls(this));\r\n            f.ShowDialog();\r\n        }\r\n        private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)\r\n        {\r\n            \/\/button3.PerformClick();\r\n        }\r\n    }\r\n}\r\n<\/pre>\n<p>Form2.cs<\/p>\n<pre class=\"lang:c# decode:true \">using System;\r\nusing System.Collections.Generic;\r\nusing System.ComponentModel;\r\nusing System.Data;\r\nusing System.Drawing;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading.Tasks;\r\nusing System.Windows.Forms;\r\nusing System.Collections;\r\nusing System.Data.OleDb;\r\n\r\nnamespace WindowsFormsApplication1\r\n{\r\n    public partial class Form2 : Form\r\n    {\r\n        private String database_path = System.IO.Path.GetDirectoryName(Application.ExecutablePath);\r\n\r\n        public Form2(Control[] parent_contorls)\r\n        {\r\n            InitializeComponent();\r\n            foreach (Control ctrl in parent_contorls) if (ctrl is Button &amp;&amp; ctrl.Text != \"\u30ea\u30bb\u30c3\u30c8\") this.comboBox1.Items.Add(ctrl.Text);\r\n            for (int i = -2; i &lt;= 2; i++) this.comboBox2.Items.Add(DateTime.Now.Year + i);\r\n            for (int i = 1; i &lt;= 12; i++) this.comboBox3.Items.Add(i.ToString().PadLeft(2, '0'));\r\n            for (int i = 1; i &lt;= 31; i++) this.comboBox4.Items.Add(i.ToString().PadLeft(2, '0'));\r\n            this.comboBox2.Text = DateTime.Now.ToString(\"yyyy\");\r\n            this.comboBox3.Text = DateTime.Now.ToString(\"MM\");\r\n            this.comboBox4.Text = DateTime.Now.ToString(\"dd\");\r\n            this.WindowState = FormWindowState.Maximized;\r\n            \/\/this.dataGridView1.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;\r\n            \/\/this.dataGridView1.ColumnHeadersDefaultCellStyle.WrapMode = DataGridViewTriState.False;\r\n        }\r\n        private void button2_Click(object sender, EventArgs e)\r\n        {\r\n            if (this.textBox1.Text != \"1234\") return;\r\n            if (this.comboBox1.Text == \"\")\r\n            {\r\n                MessageBox.Show(\"\u540d\u524d\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002\");\r\n                return;\r\n            }\r\n            DateTime dt;\r\n            string[] check_date = new string[2];\r\n            if (DateTime.TryParse(this.comboBox2.Text + \"\/\" + this.comboBox3.Text + \"\/\" + this.comboBox4.Text, out dt))\r\n            {\r\n                check_date[0] = dt.ToString(\"yyyy\/MM\/dd 00:00:01\");\r\n                check_date[1] = dt.ToString(\"yyyy\/MM\/dd 08:25:00\");\r\n            }\r\n            else\r\n            {\r\n                MessageBox.Show(\"\u65e5\u4ed8\u304c\u9069\u5207\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002\");\r\n                return;\r\n            }\r\n            using (OleDbConnection cn = new OleDbConnection(@\"Provider=Microsoft.JET.OLEDB.4.0;Data Source=\" + database_path + @\"\\Tc_Db.mdb;\"))\r\n            {\r\n                OleDbTransaction transaction = null;\r\n                try\r\n                {\r\n                    cn.Open();\r\n                    transaction = cn.BeginTransaction(IsolationLevel.ReadCommitted);\r\n                    OleDbCommand cmd = new OleDbCommand(\"INSERT INTO Tc_Tbl (\u6c0f\u540d,\u65e5\u4ed8) VALUES ('\" + this.comboBox1.Text + \"','\" + check_date[0] + \"')\", cn);\r\n                    cmd.Transaction = transaction;\r\n                    cmd.ExecuteNonQuery();\r\n                    transaction.Commit();\r\n                }\r\n                catch\r\n                {\r\n                    MessageBox.Show(\"\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306b\u63a5\u7d9a\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u7ba1\u7406\u8005\u306b\u9023\u7d61\u3057\u3066\u304f\u3060\u3055\u3044\u3002\");\r\n                    try\r\n                    {\r\n                        transaction.Rollback();\r\n                        return;\r\n                    }\r\n                    catch\r\n                    {\r\n                        return;\r\n                    }\r\n                }\r\n                finally\r\n                {\r\n                    cn.Close();\r\n                }\r\n            }\r\n            button1.PerformClick();\r\n        }\r\n        private void button1_Click(object sender, EventArgs e)\r\n        {\r\n            if(this.comboBox1.Text == \"\")\r\n            {\r\n                MessageBox.Show(\"\u540d\u524d\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002\");\r\n                return;\r\n            }\r\n            this.dataGridView1.Rows.Clear();\r\n            DateTime tmp;\r\n            DateTime[] chk_date = new DateTime[2];\r\n            if (DateTime.TryParse(this.comboBox2.Text + \"\/\" + this.comboBox3.Text + \"\/1\", out tmp))\r\n            {\r\n                chk_date[0] = new DateTime(int.Parse(this.comboBox2.Text), int.Parse(this.comboBox3.Text), 1, 00, 00, 01);\r\n                chk_date[1] = new DateTime(int.Parse(this.comboBox2.Text), int.Parse(this.comboBox3.Text),DateTime.DaysInMonth(int.Parse(this.comboBox2.Text),int.Parse(this.comboBox3.Text)), 00, 00, 01);\r\n            }\r\n            else\r\n            {\r\n                MessageBox.Show(\"\u65e5\u4ed8\u304c\u9069\u5207\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002\");\r\n                return;\r\n            }\r\n            using (OleDbConnection cn = new OleDbConnection(@\"Provider=Microsoft.JET.OLEDB.4.0;Data Source=\" + database_path + @\"\\Tc_Db.mdb;\"))\r\n            {\r\n                try\r\n                {\r\n                    cn.Open();\r\n                    for (DateTime i = chk_date[0]; i &lt;= chk_date[1]; i = i.AddDays(1))\r\n                    {\r\n                        OleDbCommand cmd = new OleDbCommand(\"SELECT ID,\u6c0f\u540d,\u65e5\u4ed8,\u51fa\u793e,\u9000\u793e,\u5916\u51fa,\u5e30\u793e,\u65e9\u51fa\u7533\u8acb,\u6b8b\u696d\u7533\u8acb,\u4f11\u51fa\u7533\u8acb,\u6709\u7d66\u7533\u8acb,\u7121\u7d66\uff08\u9045\u30fb\u65e9\u30fb\u6b20\uff09\u7533\u8acb,\u4ee3\u4f11\u7533\u8acb,\u5099\u8003 FROM Tc_Tbl WHERE\" + \" \u65e5\u4ed8 = #\" + i.ToString(\"yyyy\/MM\/dd 00:00:01\") + \"# AND \u6c0f\u540d = '\" + this.comboBox1.Text + \"'\", cn);\r\n                        using(OleDbDataReader dr = cmd.ExecuteReader())\r\n                        {\r\n                            if (!dr.Read())\r\n                            {\r\n                                this.dataGridView1.Rows.Add(\r\n                                    \"\", \/\/Button\r\n                                    \"\", \/\/ID\r\n                                    \"\", \/\/\u6c0f\u540d\r\n                                    i.ToString(\"yyyy\/MM\/dd 00:00:01\"),\r\n                                    \"\", \/\/\u51fa\u793e\r\n                                    \"\", \/\/\u9000\u793e\r\n                                    \"\", \/\/\u5916\u51fa\r\n                                    \"\", \/\/\u5e30\u793e\r\n                                    \"\", \/\/\u65e9\u51fa\u7533\u8acb\r\n                                    \"\", \/\/\u6b8b\u696d\u7533\u8acb\r\n                                    \"\", \/\/\u4f11\u51fa\u7533\u8acb\r\n                                    \"\", \/\/\u6709\u7d66\u7533\u8acb\r\n                                    \"\", \/\/\u7121\u7d66\uff08\u9045\u30fb\u65e9\u30fb\u6b20\uff09\u7533\u8acb\r\n                                    \"\", \/\/\u4ee3\u4f11\u7533\u8acb\r\n                                    \"\", \/\/\u5099\u8003\r\n                                    \"\", \/\/\u5185\u5bb9\u4e0d\u5099(NoDb)\r\n                                    \"\" \/\/Button\r\n                                    );\r\n\r\n                                \/\/ 2016\/04\/21 \u8ffd\u52a0\r\n                                if (6 == (int)i.DayOfWeek)\r\n                                {\r\n                                    this.dataGridView1.Rows[dataGridView1.Rows.Count - 1].DefaultCellStyle.BackColor = Color.FromArgb(220,220,255);\r\n                                }\r\n                                else if (0 == (int)i.DayOfWeek)\r\n                                {\r\n                                    this.dataGridView1.Rows[dataGridView1.Rows.Count - 1].DefaultCellStyle.BackColor = Color.FromArgb(255, 220, 220);\r\n                                }\r\n                                \r\n                            }\r\n                            else\r\n                            {\r\n                                int j = 0;\r\n                                do\r\n                                {\r\n                                    if (j != 0) MessageBox.Show(i.ToString(\"yyyy\/MM\/dd\") + \"\u304c\u91cd\u8907\u3057\u3066\u3044\u307e\u3059\u3002\");\r\n                                    this.dataGridView1.Rows.Add(\r\n                                        \"\u66f4\u65b0\", \/\/Button\r\n                                        dr[0], \/\/ID\r\n                                        dr[1], \/\/\u6c0f\u540d\r\n                                        DateTime.Parse(dr[2].ToString()).ToString(\"yyyy\/MM\/dd 00:00:01\"),\r\n                                        dr[3], \/\/\u51fa\u793e\r\n                                        dr[4], \/\/\u9000\u793e\r\n                                        dr[5], \/\/\u5916\u51fa\r\n                                        dr[6], \/\/\u5e30\u793e\r\n                                        dr[7], \/\/\u65e9\u51fa\u7533\u8acb\r\n                                        dr[8], \/\/\u6b8b\u696d\u7533\u8acb\r\n                                        dr[9], \/\/\u4f11\u51fa\u7533\u8acb\r\n                                        dr[10], \/\/\u6709\u7d66\u7533\u8acb\r\n                                        dr[11], \/\/\u7121\u7d66\uff08\u9045\u30fb\u65e9\u30fb\u6b20\uff09\u7533\u8acb\r\n                                        dr[12], \/\/\u4ee3\u4f11\u7533\u8acb\r\n                                        dr[13], \/\/\u5099\u8003\r\n                                        DateCheck.Do(new string[] { dr[2].ToString(), dr[3].ToString(), dr[4].ToString(), dr[5].ToString(), dr[6].ToString() }),\r\n                                        \"\u524a\u9664\" \/\/Button\r\n                                        );\r\n\r\n                                    \/\/ 2016\/04\/21 \u8ffd\u52a0\r\n                                    if (6 == (int)DateTime.Parse(dr[2].ToString()).DayOfWeek)\r\n                                    {\r\n                                        this.dataGridView1.Rows[dataGridView1.Rows.Count - 1].DefaultCellStyle.BackColor = Color.FromArgb(220, 220, 255);\r\n                                    }\r\n                                    else if (0 == (int)DateTime.Parse(dr[2].ToString()).DayOfWeek)\r\n                                    {\r\n                                        this.dataGridView1.Rows[dataGridView1.Rows.Count - 1].DefaultCellStyle.BackColor = Color.FromArgb(255, 220, 220);\r\n                                    }\r\n\r\n                                    j++;\r\n                                }\r\n                                while (dr.Read());\r\n                            }\r\n                        }\r\n                    }\r\n                }\r\n                catch\r\n                {\r\n                    MessageBox.Show(\"\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306b\u63a5\u7d9a\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u7ba1\u7406\u8005\u306b\u9023\u7d61\u3057\u3066\u304f\u3060\u3055\u3044\u3002\");\r\n                    return;\r\n                }\r\n                finally\r\n                {\r\n                    cn.Close();\r\n                }\r\n            }\r\n            MessageBox.Show(\"\u53d6\u5f97\u3057\u307e\u3057\u305f\u3002\");\r\n        }\r\n        private void DataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)\r\n        {\r\n            if (e.ColumnIndex == 0 &amp;&amp; dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString() == \"\u66f4\u65b0\")\r\n            {\r\n                if (this.textBox1.Text != \"1234\") return;\r\n                DialogResult YesNo = MessageBox.Show(\"\u66f4\u65b0\u3057\u307e\u3059\u304b\uff1f\", \"\u78ba\u8a8d\", MessageBoxButtons.YesNo);\r\n                if (YesNo == DialogResult.Yes) data_update(e);\r\n            }\r\n            else if (e.ColumnIndex == 16 &amp;&amp; dataGridView1.Rows[e.RowIndex].Cells[16].Value.ToString() == \"\u524a\u9664\")\r\n            {\r\n                if (this.textBox1.Text != \"1234\") return;\r\n                DialogResult YesNo = MessageBox.Show(\"\u524a\u9664\u3057\u307e\u3059\u304b\uff1f\",\"\u78ba\u8a8d\", MessageBoxButtons.YesNo);\r\n                if(YesNo == DialogResult.Yes) data_delete(e);\r\n            }\r\n        }\r\n        private void data_delete(DataGridViewCellEventArgs e)\r\n        {\r\n            using (OleDbConnection cn = new OleDbConnection(@\"Provider=Microsoft.JET.OLEDB.4.0;Data Source=\" + database_path + @\"\\Tc_Db.mdb;\"))\r\n            {\r\n                OleDbTransaction transaction = null;\r\n                try\r\n                {\r\n                    cn.Open();\r\n                    transaction = cn.BeginTransaction(IsolationLevel.ReadCommitted);\r\n                    OleDbCommand cmd = new OleDbCommand(\"DELETE FROM Tc_Tbl WHERE ID = \" + dataGridView1.Rows[e.RowIndex].Cells[1].Value.ToString() + \"\", cn);\r\n                    cmd.Transaction = transaction;\r\n                    cmd.ExecuteNonQuery();\r\n                    transaction.Commit();\r\n                }\r\n                catch\r\n                {\r\n                    MessageBox.Show(\"\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306b\u63a5\u7d9a\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u7ba1\u7406\u8005\u306b\u9023\u7d61\u3057\u3066\u304f\u3060\u3055\u3044\u3002\");\r\n                    try\r\n                    {\r\n                        transaction.Rollback();\r\n                        return;\r\n                    }\r\n                    catch\r\n                    {\r\n                        return;\r\n                    }\r\n                }\r\n                finally\r\n                {\r\n                    cn.Close();\r\n                }\r\n                button1.PerformClick();\r\n            }\r\n        }\r\n        private void data_update(DataGridViewCellEventArgs e)\r\n        {\r\n            string[] row_val = new string[12];\r\n            for (int i = 0; i &lt; 12; i++)\r\n            {\r\n                row_val[i] = \"null\";\r\n                if (i &lt; 4)\r\n                {\r\n                    DateTime dt;\r\n                    if (dataGridView1.Rows[e.RowIndex].Cells[i + 4].Value != null &amp;&amp; dataGridView1.Rows[e.RowIndex].Cells[i + 4].Value.ToString() != \"\" &amp;&amp; DateTime.TryParse(dataGridView1.Rows[e.RowIndex].Cells[i + 4].Value.ToString(), out dt))\r\n                    {\r\n                        row_val[i] = \"'\" + dt.ToString(\"yyyy\/MM\/dd HH:mm:ss\") + \"'\";\r\n                    }\r\n                    else if (dataGridView1.Rows[e.RowIndex].Cells[i + 4].Value != null &amp;&amp; dataGridView1.Rows[e.RowIndex].Cells[i + 4].Value.ToString() != \"\")\r\n                    {\r\n                        MessageBox.Show(i + 4 + \"\u5217\u76ee\u304c\u4e0d\u6b63\u306a\u6587\u5b57\u5217\u3067\u3059\u3002\");\r\n                        return;\r\n                    }\r\n                }\r\n                else if (dataGridView1.Rows[e.RowIndex].Cells[i + 4].Value != null &amp;&amp; dataGridView1.Rows[e.RowIndex].Cells[i + 4].Value.ToString() != \"\")\r\n                {\r\n                    row_val[i] = \"'\" + dataGridView1.Rows[e.RowIndex].Cells[i + 4].Value.ToString() + \"'\";\r\n                }\r\n            }\r\n            using (OleDbConnection cn = new OleDbConnection(@\"Provider=Microsoft.JET.OLEDB.4.0;Data Source=\" + database_path + @\"\\Tc_Db.mdb;\"))\r\n            {\r\n                OleDbTransaction transaction = null;\r\n                try\r\n                {\r\n                    cn.Open();\r\n                    transaction = cn.BeginTransaction(IsolationLevel.ReadCommitted);\r\n                    OleDbCommand cmd = new OleDbCommand(\r\n                        \"UPDATE Tc_Tbl SET\" + \r\n                        \" \u51fa\u793e = \" + row_val[0] +\",\" + \r\n                        \" \u9000\u793e = \" + row_val[1] + \",\" + \r\n                        \" \u5916\u51fa = \" + row_val[2] + \",\" + \r\n                        \" \u5e30\u793e = \" + row_val[3] + \",\" + \r\n                        \" \u65e9\u51fa\u7533\u8acb = \" + row_val[4] + \",\" + \r\n                        \" \u6b8b\u696d\u7533\u8acb = \" + row_val[5] + \",\" + \r\n                        \" \u4f11\u51fa\u7533\u8acb = \" + row_val[6] + \",\" + \r\n                        \" \u6709\u7d66\u7533\u8acb = \" + row_val[7] + \",\" +\r\n                        \" \u7121\u7d66\uff08\u9045\u30fb\u65e9\u30fb\u6b20\uff09\u7533\u8acb = \" + row_val[8] + \",\" +\r\n                        \" \u4ee3\u4f11\u7533\u8acb = \" + row_val[9] + \",\" + \r\n                        \" \u5099\u8003 = \" + row_val[10] + \r\n                        \" WHERE ID = \" + dataGridView1.Rows[e.RowIndex].Cells[1].Value.ToString() + \"\", cn\r\n                        );\r\n                    cmd.Transaction = transaction;\r\n                    cmd.ExecuteNonQuery();\r\n                    transaction.Commit();\r\n                }\r\n                catch\r\n                {\r\n                    MessageBox.Show(\"\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306b\u63a5\u7d9a\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u7ba1\u7406\u8005\u306b\u9023\u7d61\u3057\u3066\u304f\u3060\u3055\u3044\u3002\");\r\n                    try\r\n                    {\r\n                        transaction.Rollback();\r\n                        return;\r\n                    }\r\n                    catch\r\n                    {\r\n                        return;\r\n                    }\r\n                }\r\n                finally\r\n                {\r\n                    cn.Close();\r\n                }\r\n                button1.PerformClick();\r\n            }\r\n        }\r\n    }\r\n}\r\n\r\n<\/pre>\n<p>DataCheck.cs<\/p>\n<pre class=\"lang:c# decode:true \">using System;\r\nusing System.Collections.Generic;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading.Tasks;\r\n\r\nnamespace WindowsFormsApplication1\r\n{\r\n    class DateCheck\r\n    {\r\n        static public string Do(string[] tmp)\r\n        {\r\n            \/\/\u51fa\u793e\u304c\u306a\u3044\r\n            if (tmp[1] == \"\") return \"NG\";\r\n\r\n            \/\/\u51fa\u793e\u304c\u65e5\u4ed8\u3068\u540c\u65e5\u304b\r\n            if(tmp[0] != \"\" &amp;&amp; tmp[1] != \"\")\r\n            {\r\n                if (DateTime.Parse(tmp[0]).Date != DateTime.Parse(tmp[1]).Date) return \"NG\";\r\n            }\r\n\r\n            \/\/\u51fa\u793e\u3057\u305f\u3089\u9000\u793e\u3057\u3066\u3044\u308b\u304b\r\n            if (tmp[1] != \"\" &amp;&amp; tmp[2] == \"\") return \"NG\";\r\n\r\n            \/\/\u9000\u793e\u3057\u3066\u3066\u51fa\u793e\u304c\u306a\u3044\r\n            if (tmp[1] == \"\" &amp;&amp; tmp[2] != \"\") return \"NG\";\r\n\r\n            \/\/\u9000\u793e\u304c\u51fa\u793e\u3068\u540c\u65e5\u3042\u308b\u3044\u306f\u7fcc\u65e5\u304b\u3001\u9000\u793e\u304c\u51fa\u793e\u3088\u308a\u524d\u3067\u306f\u306a\u3044\u304b\r\n            if (tmp[1] != \"\" &amp;&amp; tmp[2] != \"\")\r\n            {\r\n                if (DateTime.Parse(tmp[1]) &gt; DateTime.Parse(tmp[2]) || DateTime.Parse(tmp[1]).Date != DateTime.Parse(tmp[2]).Date &amp;&amp; DateTime.Parse(tmp[1]).AddDays(1).Date != DateTime.Parse(tmp[2]).Date) return \"NG\";\r\n            }\r\n\r\n            \/\/\u5916\u51fa\u304c\u51fa\u793e\u3088\u308a\u5f8c\u3067\u9000\u51fa\u3088\u308a\u524d\u304b\r\n            if (tmp[1] != \"\" &amp;&amp; tmp[2] != \"\" &amp;&amp; tmp[3] != \"\")\r\n            {\r\n                if (DateTime.Parse(tmp[1]) &gt; DateTime.Parse(tmp[3]) || DateTime.Parse(tmp[2]) &lt; DateTime.Parse(tmp[3])) return \"NG\";\r\n            }\r\n\r\n            \/\/\u5916\u51fa\u3057\u305f\u3089\u5e30\u793e\u3057\u3066\u3044\u308b\u304b\r\n            if (tmp[3] != \"\" &amp;&amp; tmp[4] == \"\") return \"NG\";\r\n\r\n            \/\/\u5e30\u793e\u3057\u3066\u3066\u5916\u51fa\u304c\u306a\u3044\r\n            if (tmp[3] == \"\" &amp;&amp; tmp[4] != \"\") return \"NG\";\r\n\r\n            \/\/\u5e30\u793e\u304c\u5916\u51fa\u3088\u308a\u5f8c\u3067\u9000\u51fa\u3088\u308a\u524d\u304b\r\n            if (tmp[2] != \"\" &amp;&amp; tmp[3] != \"\" &amp;&amp; tmp[4] != \"\")\r\n            {\r\n                if (DateTime.Parse(tmp[2]) &lt; DateTime.Parse(tmp[4]) || DateTime.Parse(tmp[3]) &gt; DateTime.Parse(tmp[4])) return \"NG\";\r\n            }\r\n            return \"OK\";\r\n        }\r\n    }\r\n}\r\n<\/pre>\n<p>C#\u3067mdb\u306b\u767b\u9332\u3057\u3066\u30a8\u30af\u30bb\u30eb\u3067\u629c\u304d\u51fa\u3057\u3066\u96c6\u8a08<\/p>\n<pre class=\"lang:vb decode:true \">Sub test()\r\n\r\nApplication.CommandBars(\"cell\").Reset\r\n\r\nEnd Sub\r\nSub auto_open()\r\n\r\nOn Error Resume Next\r\n\r\nApplication.CommandBars(\"cell\").Controls(\"TC\u96c6\u8a08\u958b\u59cb\").Delete\r\nApplication.CommandBars(\"cell\").Controls(\"TC\u96c6\u8a08\u958b\u59cb\").Delete\r\n\r\nWith Application.CommandBars(\"cell\").Controls.Add\r\n  .OnAction = \"main\"\r\n  .Caption = \"TC\u96c6\u8a08\u958b\u59cb\"\r\nEnd With\r\n\r\nApplication.CommandBars(\"cell\").Controls(\"\u78ba\u8a8d\u8868\u793a\").Delete\r\nApplication.CommandBars(\"cell\").Controls(\"\u78ba\u8a8d\u8868\u793a\").Delete\r\n\r\nWith Application.CommandBars(\"cell\").Controls.Add\r\n  .OnAction = \"check_layout\"\r\n  .Caption = \"\u78ba\u8a8d\u8868\u793a\"\r\nEnd With\r\n\r\n\r\nEnd Sub\r\nSub auto_close()\r\n\r\nOn Error Resume Next\r\n\r\nApplication.CommandBars(\"cell\").Controls(\"TC\u96c6\u8a08\u958b\u59cb\").Delete\r\nApplication.CommandBars(\"cell\").Controls(\"TC\u96c6\u8a08\u958b\u59cb\").Delete\r\n\r\nApplication.CommandBars(\"cell\").Controls(\"\u78ba\u8a8d\u8868\u793a\").Delete\r\nApplication.CommandBars(\"cell\").Controls(\"\u78ba\u8a8d\u8868\u793a\").Delete\r\n\r\nEnd Sub\r\n\r\nSub check_layout()\r\n\r\ntmp = MsgBox(\"\u5b9f\u884c\u5f8c\u306b\u4fdd\u5b58\u3057\u306a\u3044\u3088\u3046\u6ce8\u610f\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u5b9f\u884c\u3057\u307e\u3059\u304b\uff1f\", vbYesNo)\r\nIf tmp = vbNo Then Exit Sub\r\n\r\nFor Each w In Worksheets\r\n\r\n  If w.Name &lt;&gt; \"MAIN MENU\" Then\r\n  \r\n    w.Columns(\"A:X\").ColumnWidth = 0\r\n    w.Rows(\"1:3\").RowHeight = 0\r\n    \r\n  End If\r\n  \r\nNext\r\n\r\nMsgBox \"\u7d42\u4e86\u3057\u307e\u3057\u305f\u3002\"\r\n\r\nEnd Sub\r\n\r\nSub init()\r\n\r\nFor Each w In Worksheets\r\n\r\n  If w.Name &lt;&gt; \"MAIN MENU\" Then\r\n\r\n    w.Activate\r\n    w.Unprotect\r\n    w.Range(\"W4\").Select\r\n    \r\n    ActiveWindow.Zoom = 85\r\n    ActiveWindow.ScrollColumn = 1\r\n    ActiveWindow.ScrollRow = 1\r\n\r\n    w.Range(\"B5:B35\").ClearContents\r\n    w.Range(\"C5:C35\").ClearContents\r\n    w.Range(\"E5:E35\").ClearContents\r\n    w.Range(\"F5:F35\").ClearContents\r\n    w.Range(\"S5:S35\").ClearContents\r\n    w.Range(\"W4:AK35\").ClearContents\r\n\r\n    w.Range(\"B5:C35\").NumberFormatLocal = \"0\"\r\n    w.Range(\"E5:F35\").NumberFormatLocal = \"0\"\r\n    w.Range(\"N5:Q35\").NumberFormatLocal = \"0.00\"\r\n    w.Range(\"W5:W35\").NumberFormatLocal = \"yyyy\/mm\/dd hh:mm:ss\"\r\n    w.Range(\"X5:X35\").NumberFormatLocal = \"0\"\r\n    w.Range(\"Z5:AD35\").NumberFormatLocal = \"yyyy\/mm\/dd hh:mm:ss\"\r\n    w.Range(\"AE5:AK35\").NumberFormatLocal = \"@\"\r\n  \r\n    For r = 5 To 35\r\n    \r\n      w.Cells(r, 2).Value = \"=HOUR(AA\" &amp; r &amp; \")\"\r\n      w.Cells(r, 3).Value = \"=MINUTE(AA\" &amp; r &amp; \")\"\r\n      w.Cells(r, 5).Value = \"=HOUR(AB\" &amp; r &amp; \") + (INT(AB\" &amp; r &amp; \")-INT(AA\" &amp; r &amp; \")) * 24\"\r\n      w.Cells(r, 6).Value = \"=MINUTE(AB\" &amp; r &amp; \")\"\r\n      \r\n      w.Cells(r, 14).Value = \"=IF(D\" &amp; r &amp; \"=\"\"\"\",\"\"\"\",(IF(AND(VALUE(D\" &amp; r &amp; \")&lt;VALUE(\"\"7:31\"\"),VALUE(D\" &amp; r &amp; \")&gt;=VALUE(\"\"6:31\"\")),1,IF(AND(VALUE(D\" &amp; r &amp; \")&lt;VALUE(\"\"6:31\"\"),VALUE(D\" &amp; r &amp; \")&gt;=VALUE(\"\"5:31\"\")),2,IF(AND(VALUE(D\" &amp; r &amp; \")&lt;VALUE(\"\"5:31\"\"),VALUE(D\" &amp; r &amp; \")&gt;=VALUE(\"\"4:30\"\")),3,0)))))\"\r\n      \r\n      'w.Cells(r, 15).Value = \"=IF(H\" &amp; r &amp; \"=\"\"\"\",\"\"\"\",IF(AND(VALUE(D\" &amp; r &amp; \")&lt;=VALUE(\"\"8:30\"\"),VALUE(G\" &amp; r &amp; \")&gt;=VALUE(\"\"17:21\"\")),8,IF(AND(NOT(VALUE(D\" &amp; r &amp; \")&lt;=VALUE(\"\"8:30\"\")),NOT(VALUE(G\" &amp; r &amp; \")&gt;VALUE(\"\"17:21\"\"))),FLOOR(H\" &amp; r &amp; \"*24-I\" &amp; r &amp; \",0.5),IF(AND(VALUE(D\" &amp; r &amp; \")&gt;=VALUE(\"\"8:30\"\"),VALUE(G\" &amp; r &amp; \")&gt;=VALUE(\"\"17:21\"\")),IF(FLOOR(G\" &amp; r &amp; \"*24-D\" &amp; r &amp; \"*24-I\" &amp; r &amp; \",0.5)&gt;4,4,FLOOR(G\" &amp; r &amp; \"*24-D\" &amp; r &amp; \"*24-I\" &amp; r &amp; \",0.5)),IF(VALUE(G\" &amp; r &amp; \")&lt;=VALUE(\"\"17:21\"\"),FLOOR(VALUE(G\" &amp; r &amp; \")*24-(\"\"8:30\"\")*24-I\" &amp; r &amp; \",0.5))))))\"\r\n      'w.Cells(r, 16).Value = \"=IF(H\" &amp; r &amp; \"=\"\"\"\",\"\"\"\",IF(M\" &amp; r &amp; \"=\"\"\"\",IF(VALUE(G\" &amp; r &amp; \")&gt;VALUE(\"\"18:30\"\"),IF(AND(-Q\" &amp; r &amp; \"+FLOOR(G\" &amp; r &amp; \"*24-\"\"18:01\"\"*24,0.5)&gt;2,S\" &amp; r &amp; \"=\"\"\u7533\u8acb\u4e0d\u8981\"\"),2,-Q\" &amp; r &amp; \"+FLOOR(G\" &amp; r &amp; \"*24-\"\"18:01\"\"*24,0.5)),0),IF(VALUE(G\" &amp; r &amp; \")&gt;VALUE(\"\"18:30\"\"),IF(AND(-Q\" &amp; r &amp; \"+FLOOR(G\" &amp; r &amp; \"*24-\"\"17:31\"\"*24,0.5)&gt;2,S\" &amp; r &amp; \"=\"\"\u7533\u8acb\u4e0d\u8981\"\"),2,-Q\" &amp; r &amp; \"+FLOOR(G\" &amp; r &amp; \"*24-\"\"18:01\"\"*24,0.5)),0)))\"\r\n      'w.Cells(r, 17).Value = \"=IF(H\" &amp; r &amp; \"=\"\"\"\",\"\"\"\",(IF(VALUE(G\" &amp; r &amp; \")*24&gt;TIMEVALUE(\"\"22:01\"\")*24,FLOOR(G\" &amp; r &amp; \"-\"\"22:01\"\",\"\"0:30\"\")*24,0)))\"\r\n      \r\n      ' rev2.3 2016\/4\/26\u8ffd\u52a0\r\n      w.Cells(r, 15).Value = \"=IF(H\" &amp; r &amp; \"=\"\"\"\",\"\"\"\",IF(AND(VALUE(D\" &amp; r &amp; \")&lt;=VALUE(\"\"8:30\"\"),VALUE(G\" &amp; r &amp; \")&gt;=VALUE(\"\"17:20\"\")),8,IF(AND(VALUE(D\" &amp; r &amp; \")&gt;VALUE(\"\"8:30\"\"),VALUE(G\" &amp; r &amp; \")&lt;VALUE(\"\"17:20\"\")),FLOOR(VALUE(H\" &amp; r &amp; \")*24-I\" &amp; r &amp; \",0.25),IF(AND(VALUE(D\" &amp; r &amp; \")&gt;VALUE(\"\"8:30\"\"),VALUE(G\" &amp; r &amp; \")&gt;=VALUE(\"\"17:20\"\")),FLOOR((VALUE(G\" &amp; r &amp; \")*24-VALUE(D\" &amp; r &amp; \")*24)-I\" &amp; r &amp; \",0.25),FLOOR((VALUE(G\" &amp; r &amp; \")*24-VALUE(\"\"8:30\"\")*24)-I\" &amp; r &amp; \",0.25)))))\"\r\n      'w.Cells(r, 16).Value = \"=IF(H\" &amp; r &amp; \"=\"\"\"\",\"\"\"\",IF(AND(VALUE(G\" &amp; r &amp; \")&gt;VALUE(\"\"18:30\"\"),S\" &amp; r &amp; \"&lt;&gt;\"\"\u7533\u8acb\u4e0d\u8981\"\"),IF(M\" &amp; r &amp; \"=\"\"\"\",-Q\" &amp; r &amp; \"+FLOOR(VALUE(G\" &amp; r &amp; \")*24-VALUE(\"\"18:00\"\")*24,0.25),-Q\" &amp; r &amp; \"+FLOOR(VALUE(G\" &amp; r &amp; \")*24-VALUE(\"\"17:30\"\")*24,0.25)),0))\"\r\n      w.Cells(r, 17).Value = \"=IF(H\" &amp; r &amp; \"=\"\"\"\",\"\"\"\",IF(VALUE(G\" &amp; r &amp; \")*24&gt;VALUE(\"\"22:00\"\")*24,FLOOR(VALUE(G\" &amp; r &amp; \")*24-VALUE(\"\"22:00\"\")*24,0.25),0))\"\r\n      \r\n      ' rev2.5.1\r\n      w.Cells(r, 16).Value = \"=IF(H\" &amp; r &amp; \"=\"\"\"\",\"\"\"\",IF(AND(VALUE(G\" &amp; r &amp; \")&gt;VALUE(\"\"18:14:59\"\"),S\" &amp; r &amp; \"&lt;&gt;\"\"\u7533\u8acb\u4e0d\u8981\"\"),IF(M\" &amp; r &amp; \"=\"\"\"\",-Q\" &amp; r &amp; \"+FLOOR(VALUE(G\" &amp; r &amp; \")*24-VALUE(\"\"17:59:59\"\")*24,0.25),-Q\" &amp; r &amp; \"+FLOOR(VALUE(G\" &amp; r &amp; \")*24-VALUE(\"\"17:29:59\"\")*24,0.25)),0))\"\r\n      \r\n    Next r\r\n\r\n    DoEvents\r\n\r\n  End If\r\n  \r\nNext w\r\n\r\nEnd Sub\r\n\r\nSub ed()\r\n\r\nFor Each w In Worksheets\r\n\r\n  If w.Name &lt;&gt; \"MAIN MENU\" Then\r\n    \r\n    w.Activate\r\n    \r\n    For r = 5 To 35\r\n    \r\n      If w.Cells(r, 27).Value = \"\" Then w.Cells(r, 2).Value = \"\"\r\n      If w.Cells(r, 27).Value = \"\" Then w.Cells(r, 3).Value = \"\"\r\n      If w.Cells(r, 28).Value = \"\" Then w.Cells(r, 5).Value = \"\"\r\n      If w.Cells(r, 28).Value = \"\" Then w.Cells(r, 6).Value = \"\"\r\n\r\n      If w.Cells(r, 31).Value = \"\" And w.Cells(r, 13).Text = \"\" Then\r\n      \r\n          w.Cells(r, 14).Value = \"\"\r\n          \r\n      End If\r\n      \r\n      If w.Cells(r, 32).Value = \"\" And w.Cells(r, 13).Text = \"\" Then\r\n      \r\n          w.Cells(r, 16).Value = \"\"\r\n          w.Cells(r, 17).Value = \"\"\r\n          \r\n      End If\r\n\r\n      If w.Cells(r, 33).Value = \"\" And w.Cells(r, 13).Text &lt;&gt; \"\" Then\r\n      \r\n          w.Cells(r, 14).Value = \"\"\r\n          w.Cells(r, 15).Value = \"\"\r\n          w.Cells(r, 16).Value = \"\"\r\n          w.Cells(r, 17).Value = \"\"\r\n          \r\n      End If\r\n      \r\n      Select Case w.Name\r\n      \r\n          Case \"xxx\"\r\n    \r\n          Case Else\r\n          \r\n              If w.Cells(r, 13).Text = \"\" Then w.Cells(r, 15).NumberFormatLocal = \"\"\"-\"\"\"\r\n          \r\n      End Select\r\n\r\n    Next r\r\n\r\n    DoEvents\r\n\r\n  End If\r\n\r\n  w.Columns(\"W:AK\").AutoFit\r\n\r\nNext w\r\n\r\nEnd Sub\r\n\r\nSub ck()\r\n\r\nFor Each w In Worksheets\r\n\r\n  If w.Name &lt;&gt; \"MAIN MENU\" Then\r\n    \r\n    For r = 5 To 35\r\n    \r\n    Select Case w.Name\r\n    \r\n      Case \"xxx\"\r\n      Case Else\r\n      \r\n        If IsError(w.Cells(r, 15)) Then\r\n        \r\n          w.Activate: w.Cells(r, 15).Select\r\n          MsgBox w.Name &amp; \"\u306e\" &amp; r &amp; \"\u884c\u76ee\u306e\u5b9a\u6642\u6642\u9593\u304c\u6b63\u3057\u304f\u53d6\u5f97\u3067\u304d\u307e\u305b\u3093\u3002\"\r\n        \r\n        Else\r\n        \r\n          If w.Cells(r, 13).Value = \"\" And w.Cells(r, 15).Value &lt;&gt; \"\" And w.Cells(r, 15).Value &lt; 8 Then\r\n    \r\n            If w.Cells(r, 19).Value = \"\" Then\r\n            \r\n              w.Activate: w.Cells(r, 15).Select\r\n              MsgBox w.Name &amp; \"\u306e\" &amp; r &amp; \"\u884c\u76ee\u306e\u5b9a\u6642\u6642\u9593\u304c\u4e0d\u8db3\u3057\u3066\u3044\u307e\u3059\u3002\" &amp; Chr(13) &amp; \"\u7533\u8acb\u304c\u3042\u308a\u307e\u305b\u3093\u3002\"\r\n              \r\n            ElseIf w.Cells(r, 19).Value &lt;&gt; \"\" And w.Cells(r, 19).Value &lt;&gt; \"\u6709\u7d66\" And w.Cells(r, 19).Value &lt;&gt; \"\u534a\u4f11\" Then\r\n            \r\n              w.Activate: w.Cells(r, 15).Select\r\n              MsgBox w.Name &amp; \"\u306e\" &amp; r &amp; \"\u884c\u76ee\u306e\u5b9a\u6642\u6642\u9593\u304c\u4e0d\u8db3\u3057\u3066\u3044\u307e\u3059\u3002\" &amp; Chr(13) &amp; \"\u6709\u7d66\u30fb\u534a\u4f11\u304c\u7533\u8acb\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002\"\r\n              \r\n            End If\r\n          \r\n          End If\r\n        \r\n        End If\r\n      \r\n    End Select\r\n      \r\n    Next r\r\n      \r\n  End If\r\nNext w\r\n\r\nEnd Sub\r\n\r\nPrivate Sub main()\r\n\r\nCall init\r\n\r\nf = \"#\" &amp; Sheets(\"MAIN MENU\").Cells(5, 4) &amp; \"\/\" &amp; Sheets(\"MAIN MENU\").Cells(5, 5) &amp; \"\/1 00:00:01#\"\r\ntmp = DateAdd(\"d\", -1, DateAdd(\"m\", 1, Sheets(\"MAIN MENU\").Cells(5, 4) &amp; \"\/\" &amp; Sheets(\"MAIN MENU\").Cells(5, 5) &amp; \"\/1\"))\r\nt = \"#\" &amp; tmp &amp; \" 00:00:01#\"\r\n\r\nFor Each w In Worksheets\r\n\r\n    If w.Name &lt;&gt; \"MAIN MENU\" Then\r\n    \r\n      w.Activate\r\n\r\n      If False = fnc(w.Name, f, t) Then Exit Sub\r\n      \r\n      DoEvents\r\n      \r\n    End If\r\n\r\nNext w\r\n\r\nCall ed\r\nCall ck\r\n\r\nMsgBox \"done\"\r\n\r\nEnd Sub\r\n\r\nFunction n(fld As Variant)\r\n\r\nIf False = IsNull(fld) Then\r\n\r\n    n = CStr(fld)\r\n    Exit Function\r\n\r\nEnd If\r\n\r\nn = \"\"\r\n\r\nEnd Function\r\n\r\nFunction fnc(u, f, t)\r\n\r\nOn Error GoTo try\r\n\r\np = ActiveWorkbook.Path &amp; \"\\Tc_Db.mdb\"\r\ns = \"SELECT * FROM Tc_Tbl WHERE \u6c0f\u540d = '\" &amp; u &amp; \"' AND \u65e5\u4ed8 BETWEEN \" &amp; f &amp; \" AND \" &amp; t &amp; \"\"\r\n\r\nSet cn = CreateObject(\"ADODB.Connection\")\r\nSet rs = CreateObject(\"ADODB.Recordset\")\r\n\r\ncn.Open \"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\" &amp; p &amp; \";\"\r\nrs.Open s, cn\r\n\r\nk = 0\r\ntmp = Sheets(\"MAIN MENU\").Cells(5, 4) &amp; \"\/\" &amp; Sheets(\"MAIN MENU\").Cells(5, 5) &amp; \"\/1 00:00:01\"\r\n\r\nFor i = 5 To 35\r\n      If Month(tmp) = Month(DateAdd(\"d\", k, tmp)) Then Sheets(u).Cells(i, 23) = DateAdd(\"d\", k, tmp)\r\n      k = k + 1\r\nNext\r\n\r\nFor i = 24 To 37\r\n    Sheets(u).Cells(4, i) = rs(i - 24).Name\r\nNext i\r\n\r\nDo Until rs.EOF\r\n    \r\n    For r = 5 To 35\r\n    \r\n      If Sheets(u).Cells(r, 23) &lt;&gt; \"\" And Day(Sheets(u).Cells(r, 23)) = Day(n(rs(2))) Then\r\n\r\n        For c = 24 To 37\r\n        \r\n            Sheets(u).Cells(r, c).Value = n(rs(c - 24))\r\n    \r\n        Next c\r\n\r\n        If Sheets(u).Cells(r, 31).Value &lt;&gt; \"\" Then Sheets(u).Cells(r, 19).Value = \"\u65e9\u51fa\u7533\u8acb\u6709\"\r\n        If Sheets(u).Cells(r, 32).Value &lt;&gt; \"\" Then Sheets(u).Cells(r, 19).Value = \"\u6b8b\u696d\u7533\u8acb\u6709\"\r\n        If Sheets(u).Cells(r, 31).Value &lt;&gt; \"\" And Sheets(u).Cells(r, 32).Value &lt;&gt; \"\" Then Sheets(u).Cells(r, 19).Value = \"\u6b8b\u30fb\u65e9\u7533\u8acb\u6709\"\r\n        If Sheets(u).Cells(r, 33).Value &lt;&gt; \"\" Then Sheets(u).Cells(r, 19).Value = \"\u4f11\u65e5\u51fa\u52e4\u7533\u8acb\u6709\"\r\n        If Sheets(u).Cells(r, 34).Value &lt;&gt; \"\" Then Sheets(u).Cells(r, 19).Value = \"\u6709\u4f11\"\r\n        If InStr(Sheets(u).Cells(r, 34).Value, \"(\") &gt; 0 Then Sheets(u).Cells(r, 19).Value = \"\u534a\u4f11\"\r\n        If Sheets(u).Cells(r, 35).Value &lt;&gt; \"\" Then Sheets(u).Cells(r, 19).Value = \"\u6b20\u52e4\"\r\n        If Sheets(u).Cells(r, 36).Value &lt;&gt; \"\" Then Sheets(u).Cells(r, 19).Value = \"\u4ee3\u4f11\"\r\n        If InStr(Sheets(u).Cells(r, 37).Value, \"\u7533\u8acb\u4e0d\u8981\") &gt; 0 Then Sheets(u).Cells(r, 19).Value = \"\u7533\u8acb\u4e0d\u8981\"\r\n        \r\n      End If\r\n    \r\n    Next r\r\n\r\n    rs.MoveNext\r\n    \r\nLoop\r\n\r\nrs.Close\r\nSet rs = Nothing\r\ncn.Close\r\nSet cn = Nothing\r\n\r\nfnc = True\r\n\r\nExit Function\r\n\r\ntry:\r\n\r\n    MsgBox \"error\"\r\n    fnc = False\r\n    \r\nEnd Function\r\n\r\n\r\n\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u4ee5\u524d\u4f5c\u3063\u305f\u30bf\u30a4\u30e0\u30ab\u30fc\u30c9\u30a2\u30d7\u30ea\u3002\u6c0f\u540d\u306a\u3069\u306f\u30d5\u30a9\u30fc\u30e0\u306b\u76f4\u63a5\u3002 Form1.cs using System; using System.Collections.Generic; using System.ComponentMo &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/appbay.org\/?p=775\" class=\"more-link\"><span class=\"screen-reader-text\">&#8220;C# VBA \u30bf\u30a4\u30e0\u30ab\u30fc\u30c9\u30a2\u30d7\u30ea&#8221; \u306e<\/span>\u7d9a\u304d\u3092\u8aad\u3080<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[9,5],"class_list":["post-775","post","type-post","status-publish","format-standard","hentry","category-1","tag-c-net","tag-vba"],"_links":{"self":[{"href":"https:\/\/appbay.org\/index.php?rest_route=\/wp\/v2\/posts\/775","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/appbay.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/appbay.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/appbay.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/appbay.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=775"}],"version-history":[{"count":2,"href":"https:\/\/appbay.org\/index.php?rest_route=\/wp\/v2\/posts\/775\/revisions"}],"predecessor-version":[{"id":777,"href":"https:\/\/appbay.org\/index.php?rest_route=\/wp\/v2\/posts\/775\/revisions\/777"}],"wp:attachment":[{"href":"https:\/\/appbay.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=775"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/appbay.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=775"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/appbay.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=775"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}