ラベル エクセル の投稿を表示しています。 すべての投稿を表示
ラベル エクセル の投稿を表示しています。 すべての投稿を表示

2018年7月11日水曜日

マクロで帰ろう

自分のメモ書きで書いているのだけど、 このブログで一番アクセスされているのは
結局 ”エクセルだけで差し込み印刷”のブログでもう2年位経過しているけど
順調にアクセスされている、 あの時はVBAを書いたことがなくてとりあえず
書いてみたのだけどいまだにアクセスされダウンロードされている。

最近いろいろさらに書くようになり今は、エクセルでできることはすべてマクロにできるとまで言い放っている(笑い)。

さていままで書いたものを公開しようと思うのですが
  • Outlookメール一括送信
    本文おんなじ、宛先が違うメールを大量送信する仕事を人間がすするの? まちがえるじゃないか、同じような機能の販売されているソフトやフリーソフトを見つけましたが、 ご送信防止機能はないみたいです。
    • エクセルに会社ごとの 宛先アドレス、会社名、件名、本文、アタッチメントフォルダを書いておく 
      マクロボタンでアウトルックを呼び出し 会社ごとにメールが作られ送信される
    • 追加機能、指定メールドメイン以外のドメイン名がアドレスに入っていたらメール送信しません。
  • EDIのための並べ替えマクロ
    お客にお願いしたエクセル、フォーマットに従い、CSVやエクセルで発注してくれたら受注システムにアップロードできるのに、してくれない場合の汎用並べ替えマクロ
    • 並べ替え なんで一列目が会社名なの、日付に置き換えてしまえ!  
    • マッピング うちの送付先コードはちがいますかぁー 人に代わって入れ替えよ 
    • 削除 そんな文字読めません、いらない文字列がをセルから除く、マクロの書けないあたなも一緒に!さくじょ
    • 合体 必要な文字列が別のセルに、たまには気持ちよく合体したい
    • 上記の作業をプログラムの書けないグラマーな美人さんでも簡単に設定できる汎用マクロ
  • Oltlook会議室予約
    Outlookメール送信の拡張、書けそうなのは分かったけど、まだ書いていない
さぁ、どれがほしいですか?

そして ”だれでも使えるエクセルだけで差し込み印刷” のアルゴリズムを 今 たったいま思いつきました。
フォーマットを作るだけ! ならできない人いないと思います。
書いてみたい人いませんかねぇ




2017年10月29日日曜日

EDIとは 

突然EDIのサポートをすることになりました。
なにかもわからず、調べました。

Electronic Data Interchange
データで受注処理を行うこと。
通信方式
 Internet
 VAN (閉域網 ISDNを使った通信、VANって言葉がのこっているのは驚きで
 ISDNの廃止に抵抗が多いのがこの領域だったと知りました) 
通信プロトコル
 EDIFACT など業界によりさまざま
 結局、それに対応したシステムがないと接続できない。
 ITのいない会社は無理、完全委託するしかない 

そもそも受発注はどんなやり方が一般的なのか調べたら、結構笑えるやり方でした。
FAXが残っているのもこのVANがらみだったようです。

受発注のやり方
1) FAX 
   発注側 ファックスで送信、 
   受注側 ファックスで受信 > 会社のシステムに人間様がキーイン
一体何年前の技術やねん、って感じですが、いまだに使われている。。。
2) 発注側 メールでファックスと同じフォーマットのPDFを送信
   受信側 メールで受信 > 会社のシステムに人間様がキーイン
3) 受注側が 1)2)で受信した注文書をOCRにかけて電子化し
        自社システムにupload OCRのシステムの値段が高いので、件数が
        多い会社は導入するが、件数が少ない会社は導入できない、しない。
4) 発注側 メールでエクセル送信(CSVでも可能)
   受注側 メールでエクセル受信 > 会社のシステムにupload
5)    発注側 受信側 ともにシステムを用意して受発注を行う
  EDIFACT などに従い準備する。

3)は中途半端で 5)は完璧だがITの人間がいないとできない。 
受発注のおばちゃんにEDIは理解できないので、駆り出され準備した。
ただ単に、どの項目に何を入れて送付するか決めるだけなので、簡単なんだけど
その対応すら、ダメ見たい、

でも 5)を採用できる会社は大手でも少ない、 通信の標準が違い対応できない場合が
多い、、 そうなると 4)を採用したいのだが、4にも問題がある
それは 発注側のデータの並び、受信側のデータの並びが同じでないと
入れ替え作業が必要、 でも、 発注側よりも受注者は弱い立場であるため
発注側に変更依頼ができないので、大量のおばさんをやとい1)2) で ぐるぐるしている。

5)で対応できたのは今のところ1社のみで その他は 4)で行けるか交渉を開始してもらった。
条件、 ”必要な項目さえあればどんなエクセルでもいいから 発注書を一緒にCSVまたはエクセルを送付してもらう。”

エクセルマクロを書いて ワンクリックで会社仕様のデータ並びに変更する。 
で、書きだしたのですが、ほんとに発注側がバラエティー豊かで対応するプログラムが
多数になりはじめ、、、、 あほらしいので汎用型のマクロを書くことにした。

まずは基本、ただ単に並べ替えを行うマクロを書くことした。
A社の エクセル 
並びが
B,D,A,C,E,G,F
を弊社のヘッダーと並びに
A、B,C,D,E,F,G

変えるエクセルマクロ


そのうち公開予定

おばちゃんたち、 なんでもかんでも手動で時間をかけてやって、間違えてどうするよ。




 

2016年6月18日土曜日

エクセルだけで差し込み印刷(4) 機能追加

エクセルだけで差し込み印刷(4) 機能追加をしました。

3-1 で 作成するブックが多いとエクセルが固まったように見えるので
1)実行時に何件あるのか表示確認
2)ステータスを更新する
3)マクロ終了時に作成フォルダを開く

これらの機能をインターネットで検索してマクロに追加しました。
それぞれの機能に必要なコマンドを調べました。

1) フィルタされて表示されている行数のみをカウントする。
これ、なかなか見つけるのが大変でした。
意味不明でした。 分解します


Range().Count,Cells(Rows.Count, 1).End(xlUp)).SpecialCells(xlCellTypeVisible)
XCellTypeVisivle : 見えているものだけカウントする
_複数の行を1行としてあつかう、意味不明でわからなかったのですが
一行が長くなる時に分けるセパレータでした。 一行ならなくても可能

 ' 行数カウント
    cnt =Range(Range("A6"), Cells(Rows.Count, 1).End(xlUp))
_SpecialCells(xlCellTypeVisible).Count

             
 列の下から数えてA6まで、値が入っているの行数を調べる

    ' A6からのカウントなので 1行引く
    cntL = cnt - 1


   '実行確認メッセージ
    If MsgBox("件数" & cntL & "件、実行しますか? ", vbYesNo) = vbNo Then
        End
    End If

2) ステータスの更新
これは簡単に見つかった、 左下に何件シートを処理しているか表示します
  ' ステータスバーに書き込む
          Application.StatusBar = "処理実行中....(現在 " & uFile & "件)"


  放置すると 最後の件数が表示されっぱなしになるので消去
   'ステータスバーの消去
     Application.StatusBar = False






3) マクロ終了時フォルダを開く
   
'使用したフォルダを開く
CreateObject("Shell.Application").Open SaveDir

マクロファイルはこちら

前へ 次へ




---------------------------------

Sub book作成35()

'画面のちらつきを防止する
Application.ScreenUpdating = False

'リストワークシートを選択する
Worksheets("リスト").Activate

'リストワークシートのセルA6をアクティブセルにする
Range("A6").Select

  ' 行数カウント
    cnt = Range(Range("A6"), Cells(Rows.Count, 1).End(xlUp)) _
                .SpecialCells(xlCellTypeVisible).Count
             
    ' A6からのカウントなので 1行引く
    cntL = cnt - 1


   '実行確認メッセージ
    If MsgBox("件数" & cntL & "件、実行しますか? ", vbYesNo) = vbNo Then
        End
    End If


    'ユニークファイル番号の設定、ブックを作成するときの番号を1から順につけるために必要
    uFile = 0
 
    ' Save Directory の パス設定
    パス = ActiveWorkbook.Path ' カレントパスの取得
    SaveDir = パス & "\" & Format(Date, "yyyymmdd")
    ' カレントパス,日付のフォルダがある場合はフォルダ削除して再度作成
    If Dir(SaveDir, vbDirectory) <> "" Then
        Dim FSO As Object
         Set FSO = CreateObject("Scripting.FileSystemObject")
        FSO.DeleteFolder SaveDir
        Set FSO = Nothing
        MkDir SaveDir
    Else
        MkDir SaveDir
    End If
 
   'ループの開始
   Do
   'アクティブセルを1つ下に移動する A7になる
   ActiveCell.Offset(1, 0).Select

   '空欄であれば、プログラムを終了する
   'Trim関数は前後のスペースを消去する
   If Trim(ActiveCell.Value) = "" Then
      Exit Do
   End If

   '非表示セルは対象としない
   If ActiveCell.EntireRow.Hidden = False Then

      'Format1 シートにリストの内容を繁栄される
       With Worksheets("Format1")

       'レコードの先頭セルを選択
       'Format1 D10に リストの A7の内容を移動
         .Range("D10").Value = ActiveCell.Offset(0, 0).Value
        'Format1 D12に リストのA7から指定セルを移動するために 上下方向0, 右方向に1移動
         .Range("D12").Value = ActiveCell.Offset(0, 1).Value
         .Range("F12").Value = ActiveCell.Offset(0, 2).Value
       
       'レコードの最終セルであれば、Format1シートをsaveする
           Sheets("Format1").Select 'シートをアクティブにする
          ' ユニークファイル番号の設定
          uFile = uFile + 1
       
          '名前重複排除 別名を作成 フォーマットは 1-D12-F12.xls とする
          別名 = SaveDir & "\" & uFile & "-" & Range("D12") & "-" & Range("F12") & ".xls" 'パスと拡張子を付ける
          Sheets("Format1").Copy 'シートを新規ブックへコピー ※1
          ActiveWorkbook.SaveAs Filename:=別名, FileFormat:=XlFileFormat.xlExcel8   '別名を付けてブックを保存する
          ActiveWorkbook.Close '別名ブックを閉じる
       
          Sheets("リスト").Select  ' リストシートをアクティブにする
          ' ステータスバーに書き込む
          Application.StatusBar = "処理実行中....(現在 " & uFile & "件)"
          End With

    End If

   'ループの終了
   Loop

'ステータスバーの消去
 Application.StatusBar = False
'使用したフォルダを開く
CreateObject("Shell.Application").Open SaveDir

End Sub

2016年6月15日水曜日

エクセルだけで差し込み印刷

既存エクセルファイルから、住所などをフォーマットにしたがって
Bookや印刷するためのマクロです。
カスタマイズできるように、複雑にするのはやめて
簡単に使えるようにした。

非効率なことをしていたのでつくりました。
しもじもの者がリクエストを書くのに、エクセルに日付、名前、項目などを書きその情報を、それをエクセルで作られた指定フォーマットにコピペして印刷
承認者に紙を回して承認。
おじいさんとしてはあり得ないことを強いていると思いました。

これはいかん、おじいさんは立ち上がったのでした。ボーボーっ

しかも、この機能、簡単なのにネットでカスタマイズして販売している人もいて
驚き、、、 印刷フォーマットに合わせて変更が簡単なマクロを作ろうと思いました。
リストからの単票印刷と言うらしい。
自分でマクロを修正できるといろいろ便利です。
例えば、エクセルのレコードに、物品の登録、移動、廃棄の情報を入れて
別のシートにそれぞれフォーマットを用意、人間の承認などのシートを印刷して
人間の管理ように使うようにすれば。
起点がエクセルシート一つになるので、取りこぼしがなくなります。
エクセルをエディットしなければ、シートが印刷できない流れにしてしまえばいいのです。
そうすれば情報の更新を忘れたりしません。
雑多なものの管理は一方通行が一番です。



普通だと エクセルにあるデータをワードに貼り紙込み印刷するのが差し込み印刷機能ですが
エクセルのデータを変更したりすると、ワードで更新とか。 ワードがどこかに行ってしまったり
エクセルのデータが移動とか消されたり
会社だとめんどくさい。
のでエクセルのブック1つですべて賄ってしまおうと準備しました。
ここでも書きましたが、会社でありがちな、申請書、封筒や、はがきの印刷にも
カスタマイズして使えるようにマクロを書きました。

見た目はしたのように 
左 リストシートにある情報を右 Format1に順次埋め込み bookを作成する
Format1は好きに変更可能 リストの内容も好きに変更可能

タダです使ってください。




やることは
1) データを作る 
2) データを埋め込むフォーマット作成
3) マクロを書く
  3-1) 表示されているレコードをフォーマットに埋め込みレコード毎にbookを作成
    フィルターで見えないものはBookを作りません
  3-2)  行指定で、book作成
  3-3)  フィルタかけて表示されているものを印刷
  3-4)  行指定 印刷

簡単便利 で 会社で拡散中、してないか?
貸与品情報のシートから貸し出し申請を印刷サインを取得とか
物品購入など繰り返し使うものに応用すると
日付、物品、金額を書き込みフォーマットに嵌め込み印刷して
申請。 間違えが減るし、副作用として購入申請したものは
すべてエクセルに残るので全部集計するのも楽に❗




2016年5月27日金曜日

エクセルだけで差し込み印刷(3-4)

3-4)  行指定 印刷

これは 3-2 で作った行指定book作成と 3-3 で作った印刷の応用

3-2で作った行指定book をコピーして
印刷指定行B4に変更
book作成部分を Printに変更


マクロファイルはこちら

前へ 次へ
---

Sub book作成34()

'画面のちらつきを防止する
Application.ScreenUpdating = False

'リストワークシートを選択する
Worksheets("リスト").Activate


' 印刷行数の取得
  Dim buf As Long
  buf = Range("B4")

' アクティブセルの設定 A + B4で書き込んだ行数とする
   act = "A" & buf

 
    ' Save Directory の パス設定
    パス = ActiveWorkbook.Path ' カレントパスの取得
    SaveDir = パス & "\" & Format(Date, "yyyymmdd")
    ' カレントパス,日付のフォルダがある場合はフォルダ削除して再度作成
    If Dir(SaveDir, vbDirectory) <> "" Then
        Dim FSO As Object
         Set FSO = CreateObject("Scripting.FileSystemObject")
        FSO.DeleteFolder SaveDir
        Set FSO = Nothing
        MkDir SaveDir
    Else
        MkDir SaveDir
    End If
 
 
   'リストワークシートのセルをアクティブセルにする
   Range(act).Select


   '空欄であれば、プログラムを終了する
   'Trim関数は前後のスペースを消去する
   If Trim(ActiveCell.Value) = "" Then
       MsgBox "その行は存在しません"
       End
   End If


   '非表示セルは対象としない
   If ActiveCell.EntireRow.Hidden = False Then

      'Format1 シートにリストの内容を繁栄される
       With Worksheets("Format1")

       'レコードの先頭セルを選択
       'Format1 D10に リストの A7の内容を移動
         .Range("D10").Value = ActiveCell.Offset(0, 0).Value
        'Format1 D12に リストのA7から指定セルを移動するために 上下方向0, 右方向に1移動
         .Range("D12").Value = ActiveCell.Offset(0, 1).Value
         .Range("F12").Value = ActiveCell.Offset(0, 2).Value
         
         .PrintOut
          Sheets("リスト").Select  ' リストシートをアクティブにする
     
        End With

    End If


End Sub

2016年5月24日火曜日

エクセルだけで差し込み印刷(3-3)

さて、bookをつくるから、印刷に変更

3-1) のbookを作る機能を印刷に変更するだけだと推測はしていますが
印刷コマンドがわからん。

早速 エクセルマクロ 印刷 で 検索しました。

.PrintOut
これだけで OKのような、、

で作ったのがしたのマクロ 一発で動きました。

きもちいいー

エクセルファイルはここにあります



前へ 次へ

---

Sub book作成33()

'画面のちらつきを防止する
Application.ScreenUpdating = False

'リストワークシートを選択する
Worksheets("リスト").Activate

'リストワークシートのセルA6をアクティブセルにする
Range("A6").Select
  

    'ユニークファイル番号の設定、ブックを作成するときの番号を1から順につけるために必要
    uFile = 0
    
    ' Save Directory の パス設定
    パス = ActiveWorkbook.Path ' カレントパスの取得
    SaveDir = パス & "\" & Format(Date, "yyyymmdd")
    ' カレントパス,日付のフォルダがある場合はフォルダ削除して再度作成
    If Dir(SaveDir, vbDirectory) <> "" Then
        Dim FSO As Object
         Set FSO = CreateObject("Scripting.FileSystemObject")
        FSO.DeleteFolder SaveDir
        Set FSO = Nothing
        MkDir SaveDir
    Else
        MkDir SaveDir
    End If
   
   'ループの開始
   Do
   'アクティブセルを1つ下に移動する A7になる
   ActiveCell.Offset(1, 0).Select

   '空欄であれば、プログラムを終了する
   'Trim関数は前後のスペースを消去する
   If Trim(ActiveCell.Value) = "" Then
      Exit Do
   End If

   '非表示セルは対象としない
   If ActiveCell.EntireRow.Hidden = False Then

      'Format1 シートにリストの内容を繁栄される
       With Worksheets("Format1")

       'レコードの先頭セルを選択
       'Format1 D10に リストの A7の内容を移動
         .Range("D10").Value = ActiveCell.Offset(0, 0).Value
        'Format1 D12に リストのA7から指定セルを移動するために 上下方向0, 右方向に1移動
         .Range("D12").Value = ActiveCell.Offset(0, 1).Value
         .Range("F12").Value = ActiveCell.Offset(0, 2).Value
         
          .PrintOut
          Sheets("リスト").Select  ' リストシートをアクティブにする
          End With

      End If

   'ループの終了
   Loop

End Sub

2016年5月23日月曜日

エクセルだけで差し込み印刷(3-2)

3-2)  行指定で、book作成
 非表示、フィルタで消込ができない場合 行指定でbookを作る機能を追加
  1. ファイルにしたいエクセルの行番号をシートに書き込む 
  2. 書かれた値を取得
  3. それを起点となるActive cellに設定 
  4. ファイルを作成する

自分の知識で曖昧なのは 2 エクセル上に書かれたデータの値を取得する方法
あまりやっていないけど、検索したら簡単にでてきました。
Google で検索
http://www.tipsfound.com/vba/07001

s = Range("A1").Value 
s にセルの値を取り込むことができるらしい。
これさえ分かれば後は簡単


B2セルから値を取得
' 印刷行数の取得
  Dim buf As Long
  buf = Range("B2")
  
オフセットの関係でアクティブセルは
A2と設定 ' アクティブセルの設定
 act = "A" & buf







B2の値がない時にはその行が存在しないことを表示して プログラム停止
book 作成を繰り返す Do loopを削除

3-1)は書き出し先のフォルダがある場合はフォルダごと消去して
再度作り直しにしていたけど、、 
1行づつ作成の場合は、、たぶん その行だけのbookを作成したいかも
フォルダを消すのはやめるべきか、悩む、、

エクセルファイルはここにあります


前へ 次へ

---

Sub book作成32()

'画面のちらつきを防止する
Application.ScreenUpdating = False

'リストワークシートを選択する
Worksheets("リスト").Activate


' 印刷行数の取得
  Dim buf As Long
  buf = Range("B2")
  
' アクティブセルの設定 A + 行数となる
   act = "A" & buf
  

    'ユニークファイル番号の設定、ブックを作成するときの番号を1から順につけるために必要
    uFile = 0
    
    ' Save Directory の パス設定
    パス = ActiveWorkbook.Path ' カレントパスの取得
    SaveDir = パス & "\" & Format(Date, "yyyymmdd")
    ' カレントパス,日付のフォルダがある場合はフォルダ削除して再度作成
    If Dir(SaveDir, vbDirectory) <> "" Then
        Dim FSO As Object
         Set FSO = CreateObject("Scripting.FileSystemObject")
        FSO.DeleteFolder SaveDir
        Set FSO = Nothing
        MkDir SaveDir
    Else
        MkDir SaveDir
    End If
   
   
   'リストワークシートのセルをアクティブセルにする
   Range(act).Select


   '空欄であれば、プログラムを終了する
   'Trim関数は前後のスペースを消去する
   If Trim(ActiveCell.Value) = "" Then
       MsgBox "その行は存在しません"
       End
   End If


   '非表示セルは対象としない
   If ActiveCell.EntireRow.Hidden = False Then

      'Format1 シートにリストの内容を繁栄される
       With Worksheets("Format1")

       'レコードの先頭セルを選択
       'Format1 D10に リストの A7の内容を移動
         .Range("D10").Value = ActiveCell.Offset(0, 0).Value
        'Format1 D12に リストのA7から指定セルを移動するために 上下方向0, 右方向に1移動
         .Range("D12").Value = ActiveCell.Offset(0, 1).Value
         .Range("F12").Value = ActiveCell.Offset(0, 2).Value
         
       'レコードの最終セルであれば、Format1シートをsaveする
           Sheets("Format1").Select 'シートをアクティブにする
          ' ユニークファイル番号の設定
          uFile = uFile + 1
          
          '名前重複排除 別名を作成 フォーマットは 1-D12-F12.xls とする
          別名 = SaveDir & "\" & uFile & "-" & Range("D12") & "-" & Range("F12") & ".xls" 'パスと拡張子を付ける
          Sheets("Format1").Copy 'シートを新規ブックへコピー ※1
          'ActiveWorkbook.SaveAs Filename:=別名, FileFormat:=xlWorkbookDefault  '別名を付けてブックを保存する
          ActiveWorkbook.SaveAs Filename:=別名, FileFormat:=XlFileFormat.xlExcel8
          ActiveWorkbook.Close '別名ブックを閉じる
          
          Sheets("リスト").Select  ' リストシートをアクティブにする
       
          End With

    End If



End Sub



2016年5月22日日曜日

エクセルだけで差し込み印刷(3-1)

エレガントなコードは書けないけど、仕事が簡単になればいいじゃないか?早く、自分にもどろう。

 3-1) 表示されているレコードをフォーマットに埋め込みレコード毎にbookを作成
   見えないものはBookを作りません、なのでbookを作りたくないときが非表示にするかフィルタを使ってください。
    

エクセルのデータはリストシートに書く。
A6から書き始める。 このセルを起点に使いマクロを動かす
6行目に書くのは項目、自由に変更可能


ひな形は Format1 に作成 ( 見た目なので好きに変更可能 )
リストシートの日付を Format1のD10,D15,F15 Cellに書き込んで そのbookを 日付フォルダの中に作成します。 





カスタマイズするのに必要な知識はマクロの中のこの部分のみ

       'Format1 D10に リストの A7の内容を移動
         .Range("D10").Value = ActiveCell.Offset(0, 0).Value
        'Format1 D12に リストのA7から指定セルを移動するために 上下方向0, 右方向に1移動
         .Range("D12").Value = ActiveCell.Offset(0, 1).Value
         .Range("F12").Value = ActiveCell.Offset(0, 2).Value

アクティブセル(エクセルで選択したセル)の内容をFormat1に書込む
起点となる アクティブセルに対してどれだけ動かすか指定するのが
    ActiveCell.Offset(0, 0) :  オフセットの指定は(上下、左右) 



動かしてみてください。Formatはあなたの美的センスでなんとでもなるでしょう。

エクセルファイルはここにあります

リリースして気が付いた、印刷機能がないですね。 book作成機能が欲しかったので
先に作っちゃいました。 印刷はたぶん簡単だと思う。


前へ  次へ



---

Sub book作成()

'画面のちらつきを防止する
Application.ScreenUpdating = False

'リストワークシートを選択する
Worksheets("リスト").Activate

'リストワークシートのセルB6をアクティブセルにする
Range("A6").Select
  

    'ユニークファイル番号の設定、ブックを作成するときの番号を1から順につけるために必要
    uFile = 0
    
    ' Save Directory の パス設定
    パス = ActiveWorkbook.Path ' カレントパスの取得
    SaveDir = パス & "\" & Format(Date, "yyyymmdd")
    ' カレントパス,日付のフォルダがある場合はフォルダ削除して再度作成
    If Dir(SaveDir, vbDirectory) <> "" Then
        Dim FSO As Object
         Set FSO = CreateObject("Scripting.FileSystemObject")
        FSO.DeleteFolder SaveDir
        Set FSO = Nothing
        MkDir SaveDir
    Else
        MkDir SaveDir
    End If
   
   'ループの開始
   Do
   'アクティブセルを1つ下に移動する A7になる
   ActiveCell.Offset(1, 0).Select

   '空欄であれば、プログラムを終了する
   'Trim関数は前後のスペースを消去する
   If Trim(ActiveCell.Value) = "" Then
      Exit Do
   End If

   '非表示セルは対象としない
   If ActiveCell.EntireRow.Hidden = False Then

      'Format1 シートにリストの内容を繁栄される
       With Worksheets("Format1")

       'レコードの先頭セルを選択
       'Format1 D10に リストの A7の内容を移動
         .Range("D10").Value = ActiveCell.Offset(0, 0).Value
        'Format1 D12に リストのA7から指定セルを移動するために 上下方向0, 右方向に1移動
         .Range("D12").Value = ActiveCell.Offset(0, 1).Value
         .Range("F12").Value = ActiveCell.Offset(0, 2).Value
         
       'レコードの最終セルであれば、Format1シートをsaveする
           Sheets("Format1").Select 'シートをアクティブにする
          ' ユニークファイル番号の設定
          uFile = uFile + 1
          
          '名前重複排除 別名を作成 フォーマットは 1-D12-F12.xls とする
          別名 = SaveDir & "\" & uFile & "-" & Range("D12") & "-" & Range("F12") & ".xls" 'パスと拡張子を付ける
          Sheets("Format1").Copy 'シートを新規ブックへコピー ※1
          ActiveWorkbook.SaveAs Filename:=別名, FileFormat:=XlFileFormat.xlExcel8   '別名を付けてブックを保存する
          ActiveWorkbook.Close '別名ブックを閉じる
          
          Sheets("リスト").Select  ' リストシートをアクティブにする
       
          End With

    End If

   'ループの終了
   Loop

End Sub




2016年5月21日土曜日

プログラムは簡単だよ

プログラムをどうしてかけるようになったのかと聞かれたとき
”面倒臭がりだから”と答える
安心してください、面倒な人は素養があるひとです。
同じことを正確にするのが嫌い、苦手とも言えるかもしれない。
毎月、決まった何かの計算をしたり、繰り返し同じことをするのが
面倒と感じる人はプログラミングに向いていると思います。
同じことを正確に大量にできる機械チックな人にはプログラムは向いていません。
プログラムの手間と自分の正確さを天秤にかけて、大量な正確さが楽と考える。
モチベーションが生まれません。
  面倒くさがりな人、面倒と感じたらそれはプログラミングのチャンスです(^^;
面倒なことはプログラミングの良いモチベーションになる
モチベーションが確保出来たらあとはプログラミングだけですよ!
さて、プログラミングも実はたいしたことはありません。
インターネットで検索すればボロボロでてきます。教えてくれる人もいるのですから
書きたいプログラムが決まったら、やりたいことを分解して考えることができる人なら完璧です。
例えば、朝起きてから玄関を出るまでを正確かける程度で大丈夫だと思う。


会社の仕事って大半の人にとって面倒なだけではないかな?
会社の事務仕事で必要なのは文字を並べ替えたり
計算したりがほとんどで、出すべき結果は明白な場合が多いのではないでしょうか?
なのになぜかけない、書かないなら

エレガントなコードは書けないけど、人生早く仕事を終えて遊んだほうが良い


Now or never!

今の時代 Everybody can do
だよ


注目の投稿

ラズベリーパイ Cayenne(カイエン)1

一日放置しGUIをいじった Liveはしたのようにグラフが見えるが m など 違う区切りにすると その下のように データが無いと表示される。 コミュニティーに聞いてみたら、デフォルトで取得される値は グラフ表示されないとのことでした。 まともに動いていないかと...