投稿

てきとーに処理をする(入力フォームは考え始めるとあっちこっちに)

  import PySimpleGUI as sg import sqlite3 import datetime import openpyxl as op import pandas as pd db_name     = "test.db" connection   = sqlite3 . connect ( db_name ) query = ( f 'select sum(receipt_Money) as 合計 from omimai' ) df = pd . read_sql ( query , connection ) df2 = df . to_string ( index = False ) saaa = df2 . replace ( '合計' , '' ) saaa = saaa . replace ( ' \n ' , '' ) saaa = saaa . replace ( ' ' , '' ) sg . theme ( 'BluePurple' ) layout = [           [[ sg . Text ( '金額(1,000)' ), sg . Input ( key = '-Money-' , default_text = '0' , size = ( 6 , 1 ))],           [ sg . Text ( '姓' ), sg . Input ( key = '-Lname-' ), sg . Text ( '名' ), sg . Input ( key = '-Fname-' )],           [[ sg . Text ( '住所' ), sg . Input ( key = '-Address-' )],           [ sg . Text ( '法人名' ), sg . Input ( key = '-Company-...

Python処理メモ 何日もの日付ごとのフォルダ作成

 連続した何日かものフォルダを作成する必要ができたのでということで書いてみました。まぁこんなもんでしょといったところです。日付の操作をどうするかというところに結構時間がかかってしまいましたが。よしとしたいです。 import datetime import os #フォルダ作成元指定 dir_0 = 'C:/Users//1671/k9/' #今の日付取得(実際は時間も取得してます) dt_now = datetime.datetime.now() #以下繰り返し処理 i = 0 while (i < 35):         #日付     dt_now00 = dt_now + datetime.timedelta(days = i)     #フォルダ名     dt_now01 = str(dt_now00.strftime('%Y年%m月'))     dt_now02 = str(dt_now00.strftime('%m月%d日'))     #実際のフォルダ作成     os.makedirs(dir_0 + dt_now01+'/'+dt_now02)     i = i+1      print('完了!')

エクセルVBA  適当に乱数を発生させ座席表を作成する

\(^o^)/  高校時代に先生がパソコンで座席表を作成していた、、席順までVBA??かその他のツールで作ってそれに基づいて1っヶ月過ごした経験をふと思い出してならどうやるかを頭の中で趣味レーションしてみた。 違うと思うけど、、 で取り敢えず思いつきで作り実用性が個人的にはまったくないのですが座席の番号を一度乱数で決定し、そして個人に対しても乱数を発生っさせて。。。ここまでがVBA処理 そこをワークシート上でXlookupやVlookup関数で紐付けして一応完成、、、、 適当な割には満足しています。 なお処理をする段階で一度乱数発生場所の2箇所クリアして初期化を図っています、 (ΦωΦ)   デッデカイ!(;ΦωΦ)o/ ̄ ̄ ̄ ̄ ̄ ̄ ̄~ >゜))))彡  40人分を想定してます。また乱数の数値の範囲は200までとしておきました。 あとはちょこちょこ動かせばとりあえずはいいのではないかなと思います。 なお、初稿時においはXlookupはマイクロソフト社のサブスクリプション のサービスを受けてないと多分使えなかったので、、閲覧していただいている段階ではどうなっているかわからないけれど注意してください。ファイル公開していないので関係ないと思いますけどね。。。。 Bye♪ ヾ('-'*)ヾ(*'ー'*)ノ(*'-') /~ Bye♪ ---------------------------------------------------------------------------- Sub Randomizing()     Sheets("席リスト").Select     Range("bbb[乱数]").Select     Selection.ClearContents                     Sheets("名前リスト").Select     Range("sss[乱数]").Select     Selection.ClearContents       ...

過去作成 ExcelVBA

Sub ee()     Dim Ye, Mo, Da, Filename, SN, toaddress, ccaddress, bccaddress As String '変数設定:To宛先、cc宛先、bcc宛先     Dim subject, mailBody, credit As String '変数設定:件名、メール本文、クレジット、添付     Dim outlookObj As Outlook.Application    'Outlookで使用するオブジェクト生成     Dim mailItemObj As Outlook.mailItem      'Outlookで使用するオブジェクト生成     Dim i,SC As Long       '---コード1|outlookを起動する '---コード2|差出人、本文、署名を取得する---     toaddress = "masaki@outloo.me"     subject = Range("J5") & Year(Date) & Month(Date) & Day(Date) & "教育修了者の件"     mailBody = Year(Date) & Month(Date) & Day(Date) & "の" & Range("J5") & "教育修了者です。" & vbCrLf & "確認してください。" '---コード3|メールを作成して、差出人、本文、署名を入れ込む---     Set outlookObj = CreateObject("Outlook.Application")     Set mailItemObj = outlookObj.CreateItem(olMailItem)     mailItemObj.BodyFormat = 3      '...

ちょっとだけかな ExcelVBA InputBoxによる処理数決定とIFThen Elseif の追加

 はい、懲りずにやっています。 えーーとInputBoxの処理はそんなには時間をかけず、 条件分岐の処理において複数の処理の流れを変えていく作業に時間をかけた。 畑での作業中に処理の展開を考えてそれを実装したわけですが(=^・^=) それと、、、これ重要なことかもしれないけれこれOneDrive関係のフォルダで処理ができない。解決の糸口を見だすことができなかった。 とりあえず他の所に移して使っています。悪しからず。。。。 Sub S211()     ans = InputBox("作成数は?")     Application.DisplayAlerts = False     If ans > 2 Then         inp1 = ans - 2         zse = Range("J9") & "月" & Range("J8") & "日~" & Range("K9") & "月" & Range("K8") & "日"         ActiveSheet.Name = zse         ThisWorkbook.Sheets(zse).Copy After:=Sheets(Sheets.Count)         ActiveSheet.Name = zse & "1"         Do While i <= inp1             Range("K11").Select             Selection.Copy             Range("B7").PasteSpecial xlPasteValues       ...

週間作業予定表 VBAにて週別ファイル作成機能

  こんなに気を張ってやるものでないけれど、、、、 前半の部分は前の投稿で説明しているので省略。かな Dimがいっぱいとりあえずフォルダーの階層をひとつ一つ作成していくような流れにしてみました。 他の作成している人は一度に複数階層処理しているのですが、私はそこで何回もつまずいたので一つ一つ処理していく形をとりました。 PDFとエクセルのファイル両方を作成し別々のフォルダーに年月の階層を加えて保存するという流れにしてあります。私の勝手な判断で処理の流れとフォルダ番号が逆になっています。統一したかったけれど、これでとりあえず動くのでいいかなと思いなおしていません 。悪しからず まぁ。。。仕事にしていないから許されるフローだろうけれどね。まとまりがないごちゃごちゃしたコードになっているけれど、ね 別途ファイルを公開する予定です。気が向いた時にやります。 お疲れさまでした。 ファイル公開.................. https://drive.google.com/file/d/1SwccHVX1JMHAVhv1Dk5xH5WIGH5sGX_Z/view?usp=sharing Sub S211() Dim zse As String Dim zzz As Long Dim i As Long zse = Range("J9") & "月" & Range("J8") & "日~" & Range("K9") & "月" & Range("K8") & "日"     ActiveSheet.Name = zse     ThisWorkbook.Sheets(zse).Copy After:=Sheets(Sheets.Count)     ActiveSheet.Name = zse & "1"  Do While i <= 100  Range("K11").Select     Selection.Copy    Range("B7").PasteSpecial xlPas...

繰り返しシートコピーする事例

久しぶりにエクセルのVBAを触ってみました。 内容としては週間出勤予定表なるものがあるのですがそれを何週間分のものを週別にシートを分けてみようといことを目的に作成しました。 内容としては シート名を期間 次の週の週初めの日付はセルの値から値のみ貼り付け 何回かを繰り返す 最後の余分にできてしまうシートは削除(これはたぶん順番次第ではいらなくなるはず) ということで いろいろなところから引っ張ってきてみました。 処理がなかなか進まなかったのは シートのコピーってどうするだい。ということここで3時間ぐらい 思いつく内容を入力してもエラー ”9”が出るは出るは、、、先に進まない。。。やけくそですね。。 最後はコピペ。。。。。 また次のシートの日付処理に2時間ぐらい はじめは足して処理をしたらいいんじゃないかなぁと思っていたらそこでかなり時間を取り結局別セルに7を足してそれを引っ張ってくる方法にして解決を図りました。 多分足したほうがいいだろうなぁ。。。 それでもうまくいく方法で逃げるしかないのでそこは我慢…ということにしておいてください。 あとは全体をPDF化する処理をすれば・・・そこはまた今度にします。この手は私の昔のマクロ集から引っ張ってくれば何とかなると・・・昔のことを体系的にまとめる手間があれば・・・手を付けてみたいと思います。 では以下のサンプルですね はい同じコードがループ処理前とその中にあります。( TДT)ゴメンヨー 思いつけませんでした。(´Д`)ハァ… シートコピー後の名前 処理前 はい適切な名所が浮かびませんでした ( ´ー`)フゥー... 処理数 5 まぁいいかこれは特に意味はないですねぇ 4と迷いました。 シート削除時にアラートメッセージを出さないようにしたのは出したら自動化の意味がなくなると思ったので当然のように付けました。 ----------------------------------------------------------------------- Sub Sample1() Dim zse As String Dim i As Long zse = Range("J9") & "月" & Range("J8") & "日~...