Personal tools
You are here: Home Lights on Zope Categories EXCEL
« November 2017 »
Su Mo Tu We Th Fr Sa
      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    
Recent entries
Python Anywhere seko 2016-11-19
帯状疱疹 seko 2016-11-18
Chromebook購入 seko 2016-11-03
マカロニさん めざせデータサイエンティスト seko 2016-11-02
脳波計muse 購入 seko 2016-09-04
フェルデンクライスメソッド227回目  seko 2016-08-27
EXCELマクロ タスクが残っていてTypeNameとShell.Applicationを使って起動済みのIEが探せない seko 2016-04-19
pythonでNITE 化学物質総合情報提供システムへアクセス seko 2016-04-19
Raspberry Pi 3で侵入者を発見 seko 2016-04-03
Raspberry Pi 3 OSのインストール seko 2016-04-02
Docker コンテナをexportするpythonスクリプト seko 2016-03-31
Effective Python ―Pythonプログラムを改良する59項目 seko 2016-03-30
確かな力が身につくPython「超」入門 鎌田 正浩 (著) seko 2016-03-29
pythonでバブルソート seko 2016-03-24
Recent trackbacks
シャネル財布激安 シャネル財布激安 2017-11-21
シャネルバッグコピー シャネルバッグコピー 2017-11-14
ブランドコピー ブランドコピー 2017-11-14
スーパーコピー代引き スーパーコピー代引き 2017-11-11
ウブロスーパーコピー ウブロスーパーコピー 2017-11-11
スーパーコピーブランド激安通販専門店シャネルバッグコピー品 スーパーコピーブランド激安通販専門店シャネルバッグコピー品 2017-11-08
ブランド財布コピー ブランド財布コピー 2017-11-07
ルイヴィトンダミエバッグコピー ルイヴィトンダミエバッグコピー 2017-11-07
ブランドスーパーコピー ブランドスーパーコピー 2017-11-06
ルイヴィトン 財布カンコク コピー ルイヴィトン 財布カンコク コピー 2017-11-05
エルメスバーキンバッグ エルメスバーキンバッグ 2017-11-01
ジェイコブ時計 ジェイコブ時計 2017-10-31
ブランドコピー激安販売通販 ブランドコピー激安販売通販 2017-10-30
偽ブランド時計 偽ブランド時計 2017-10-30
 
Document Actions

EXCEL

Up one level

Document Actions

EXCELマクロ タスクが残っていてTypeNameとShell.Applicationを使って起動済みのIEが探せない

by seko posted at 2016-04-19 21:38 last modified 2016-04-19 22:23

マカロニさんがEXCELからIEを立ち上げて処理をするマクロを書いていて、IEが既に立ち上がっている場合は、そこに表示させたいということになりました。

いろいろ調べてみると、次のようにShellのWidnowsを一つ一つあたって探すのが定石のようです。

ところがやってみるとうまく行きません。 Windowsが3つしかないのに、10回も繰り返すのです。

タスクマネジャーを見てみると、何と終わらせたはずのIEがたくさん残っているではありませんか。

私のPCではそんなことはないのですが、検索してみると結構頻繁に起こっているようです。

http://www.ken3.org/vba/backno/vba156.html

'シェルのオブジェクトを作成する
Set objShell = CreateObject("Shell.Application")
ここから、ウインドウの数だけまわし、起動中のIEを探してみました。
  For Each objWindow In objShell.Windows
      Debug.Print "タイプは:" & TypeName(objWindow.document)
      'HTMLDocumentだったら
      If TypeName(objWindow.document) = "HTMLDocument" Then
          'オブジェクトを代入する
          Set objIE = objWindow
          nFLG = True '見つけたよ
          Exit For  '初めに見つけたオブジェクトを代入
      End If
  Next
Category(s)
EXCEL
The URL to Trackback this entry is:
http://lightson.dip.jp/blog/seko/3683/tbping

立山 秀利 (著) Excel VBAのプログラミングのツボとコツがゼッタイにわかる本―最初からそう教えてくれればいいのに!

by seko posted at 2009-09-23 21:41 last modified 2009-09-23 21:41

pict 立山 秀利 (著) Excel VBAのプログラミングのツボとコツがゼッタイにわかる本―最初からそう教えてくれればいいのに!

EXCELのマクロ本はたくさんあって、やたらに丁寧に書かれているものが多いのですが、いざ自分のやりたいことをやろうとするとあまり役にたちません。 マカロニさんなども、結局はマクロのコマンド辞典だけを参照しています。

この本はそうした本とはひと味違い、プログラムのアルゴリズムをどうやって書くかということに重点が置かれています。

マクロを書こうとする人のかなりの部分が、マクロの記録を延長してプログラムを書こうとするのですが、それでできることは限られています。 素人プログラマーにとっても、こうした本を参考に基本的なアルゴリズムをきちんとマスターすることが大事だと思います。

Category(s)
EXCEL
The URL to Trackback this entry is:
http://lightson.dip.jp/blog/seko/2075/tbping

西沢 直木 (著) Excel+PHP Webデータベース開発

by seko posted at 2009-09-21 18:59 last modified 2009-09-21 18:59

pict 西沢 直木 (著) Excel+PHP Webデータベース開発

PHPからEXCELフィアルを使ってWEBアプリを作るという本です。

ADODBを使ってデータベース的に操作したり、「PHPExcel」ライブラリを使って直接ファイルを読んだり、Win32COMを使ったりといろいろな方法でアクセスしています。 もちろん、Pythonでも同じことはできます。

Category(s)
EXCEL
The URL to Trackback this entry is:
http://lightson.dip.jp/blog/seko/2061/tbping

坪崎 誠司 (著) Excel VBA スキルアップコレクション

by seko posted at 2009-09-21 18:51 last modified 2009-09-21 18:51

pict 坪崎 誠司 (著) Excel VBA スキルアップコレクション

EXCELのマクロの本はたくさん出ていますが、内容は似ているものが多く、バッチ処理っぽいものを作ろうとしたときにどうしていいのか分からないことが多いです。

この本はひと味違って、こんなことが載っています。

  • VBAから実行した非同期処理の終了を監視して、順次処理を実現する
  • 他のエクセルブックのマクロを実行する
  • エクセルファイルを開く際に自動リンク機能を無視する
  • 大量のエクセルファイルを読み取り専用で開き、保存せずに閉じる
Category(s)
EXCEL
The URL to Trackback this entry is:
http://lightson.dip.jp/blog/seko/2060/tbping

マカロニココさん マクロ漬け

by seko posted at 2009-06-13 13:48 last modified 2009-06-15 14:41

Pythonの基礎をマスターし、ITパスポートにも合格したマカロニ さんですが、先週あたりからパソコンの前で固まっていることがあります。原因はEXCELのマクロ言語でした。 EXCELのVBAは、一つのことを実現する方法がたくさんあるせいか、わかりにくいですね。 Pythonを好きな人の大半は、VBAを美しくないと感じるのではないでしょうか。 ぼやいていても仕方がないので、マカロニさんと一緒に一日をかけてマクロ攻略法を検討しました。 その結果、次の3つで何でもできることがわかりました。

  • ループはFor next
  • if then else
  • Cells(i,j).value

For文のおしまいの値は、ブロックのお尻をとって設定します。

プログラムがうまく動いたときの彼女の笑顔には、毎回感動させられます。 「できました!」と振り返る彼女の瞳には、星がキラキラ輝いて、薔薇も裸足で逃げ出しそうな笑顔なんです。

Category(s)
EXCEL
misc
The URL to Trackback this entry is:
http://lightson.dip.jp/blog/seko/1962/tbping

Re:マカロニココさん マクロ漬け

Posted by Papasan at 2009-06-15 18:19
おいらも、マグロの漬け、大好きです。

Re:マカロニココさん マクロ漬け

Posted by seko at 2009-06-19 22:07
すばらしい!!
Papasan、二日間かけて練り上げましたね。

ExcelのデータをPyExceleratorを使って読む

by seko posted at 2008-03-16 16:22 last modified 2008-03-16 16:33

OpenOfficeのCalcを使ってエクセルファイルをpythonで操作する件は、fgshunさんにお任せして、私の方は、PyExcelerator でExcelファイルを読むのに挑戦してみます。
参考にさせていただいたサイト
seraphyの日記
迷走航路@hatena


読み込むファイルは次のようなもので、シート2枚からなっています。
pyexcel.jpg







取り込んでみます。
>>> import pyExcelerator
>>> sheets = pyExcelerator.parse_xls('foo1.xls')
>>> sheets
[(u'test1', {(0, 1): u'B1', (0, 0): u'A1', (2, 1): 20, (2, 0): 10, (2, 2): 30.0, (1, 0): u'A2', (1, 1): u'B2', (4, 0): u'A5'}), (u'test2', {(0, 1): u'\u307f\u304b\u3093', (0, 0): u'\u308a\u3093\u3054', (0, 2): u'\u3070\u306a\u306a'})]
すごく簡単です。データはシートごとにタプルになっています。シートの中では、ひとつ目がシート名、二つ目には辞書形式で座標と値が入っています。これはpythonレシピブック125:巨大で疎な配列を使う という技ですね。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import pyExcelerator

sheets = pyExcelerator.parse_xls('foo1.xls')
for sheet_name, values in sheets:
print 'sheet =', sheet_name
print '------------'
for row_idx, col_idx in sorted(values.keys()):
v=values[row_idx,col_idx]
print row_idx,col_idx,v
次のような結果になります。
>>> 
sheet = test1
------------
0 0 A1
0 1 B1
1 0 A2
1 1 B2
2 0 10
2 1 20
2 2 30.0
4 0 A5
sheet = test2
------------
0 0 りんご
0 1 みかん
0 2 ばなな

大変お手軽なのですが、A1セルとA2セルの値の合計をA3セルに書き込むというような場合はどうすればいいんでしょうか?

Category(s)
python
EXCEL
The URL to Trackback this entry is:
http://lightson.dip.jp/blog/seko/1570/tbping

差分のファイルだけをコピーするpython スクリプト

by seko posted at 2007-04-05 22:19 last modified 2007-04-18 23:14

srcディレクトリにあるファイルをdestディレクトリにコピーします。

既にdestディレクトリに存在する場合は、最終更新日を確認して一致すれば上書きはしません。



import os,string,shutil

srcdir='C:\Documents and Settings\seko\デスクトップ\src'
destdir='C:\Documents and Settings\seko\デスクトップ\dest'

srcfilelist=os.listdir(srcdir)
srcdict={}
for i in srcfilelist:
srcdict[i]=os.path.getmtime(os.path.join(srcdir,i))

destfilelist=os.listdir(destdir)
destdict={}
for i in destfilelist:
destdict[i]=os.path.getmtime(os.path.join(destdir,i))

for i in srcfilelist:
if i in destfilelist and srcdict[i]==destdict[i]:
print i,'alredy exist'
else:
shutil.copy2 (os.path.join(os.path.normpath(srcdir),i),os.path.join(os.path.normpath(destdir),i))

Category(s)
python
EXCEL
The URL to Trackback this entry is:
http://lightson.dip.jp/blog/seko/1210/tbping

古川 順平 (著) 仕事に役立つExcelデータベース

by seko posted at 2005-09-29 23:29 last modified 2006-05-04 20:55

古川 順平 (著)  仕事に役立つExcelデータベース

一年ぶりくらいにEXCELのマクロを書かされていて、気が狂いそうだ。

どんなふうにオブジェクトを定義したらいいかとか、繰り返しはどうするのかとか、そんな簡単なことがわからない。調べようとしても調べにくいし、一貫性がないような気がする。

美しさにかけるものを使うのは本当に辛くて、肩こりが急激に悪化して息をするのも辛い有様だ。

 

ところで、EXCELの本の多くは、手動の操作に関する本が多いし、マクロについても見た目を整えるようなものが多いような気がする。

ひとつの使い方として、テーブルを定義してデータベースのように、キーでつき合わせたりすると大変便利なのだが、そういう時に、この本はとても役に立つ。でも、VBAのことはあまり書いてないので、これ一冊というわけにはいかず、別の本も必要。

Category(s)
EXCEL
The URL to Trackback this entry is:
http://lightson.dip.jp/blog/seko/460/tbping

pythonでファイルのリストをとってEXCELに書き込むプログラム

by seko posted at 2005-07-14 00:08 last modified 2006-06-16 19:27
日経ソフトウエアの8月号にEXCELのVBAで、指定フォルダのファイルのリストを取ってEXCELに書き込むという記事が載っていた。
Pythonでやってみる。
必要なもの
こんなプログラムで、ファイルのフルパスのリストとサイズと最終更新日がEXCELに下方向に張り付いていく。

import win32com.client,os,time
xlApp=win32com.client.Dispatch("Excel.Application")
xlApp.Visible=1

xlApp.WorkBooks.Add()
sheet=xlApp.Sheets(1)
path='c:/temp'
filelist=os.listdir(path)
#print filelist
for i in range(len(filelist)):
    item=os.path.join(os.path.normpath(path),filelist[i])
    #print item
    #print i+1,os.path.basename(item),os.stat(item).st_size,time.ctime(os.stat(item).st_mtime)
    sheet.Cells(i+1, 1).Value=item
    sheet.Cells(i+1,2).Value=os.stat(item).st_size
    sheet.Cells(i+1,3).Value=time.ctime(os.stat(item).st_mtime)

Lotus Notesも同様にコントロールすることができる。

python recipe bookを見ながら書いた。

Category(s)
python
EXCEL

Powered by Plone, the Open Source Content Management System

This site conforms to the following standards: