• ベストアンサー

python3.6.5で

sheet = wb.get_sheet_by_name('Sheet1') というコマンドをうつと以下のようなエラーが出ます。 Warning (from warnings module): File "__main__", line 1 DeprecationWarning: Call to deprecated function get_sheet_by_name (Use wb[sheetname]). アドバイスをいただけるとありがたいです。

  • Python
  • 回答数2
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

> sheet = wb('Sheet1') 括弧の種類が違いますよ。

ppcz80p1
質問者

お礼

ご指摘ありがとうございます。 修正したところできました。 ありがとうございます。

その他の回答 (1)

回答No.1

DeprecationWarningとは、今後のバージョンで削除されることが決まっている機能を使用したときに表示される警告で、エラーではありません。表示されても実行が中断されたりしませんよね。 > Use wb[sheetname] と書かれているように、wb['Sheet1']に置き換えれば、警告が表示されなくなりませんか?

ppcz80p1
質問者

補足

アドバイスありがとうございます。 下記を実行したところ、このようなメッセージができました。 >>> sheet = wb('Sheet1') Traceback (most recent call last): File "<pyshell#3>", line 1, in <module> sheet = wb('Sheet1') TypeError: 'Workbook' object is not callable

関連するQ&A

  • pythonでExcelのシート名が取得できない件

    pythonの学習を始めたものです。 さっそく行きづまっていて解決できなかったので質問いたします。 windowsのコマンドプロンプトを利用し、 https://tonari-it.com/python-openpyxl-beginner/ の import openpyxl wb=openpyxl.load_workbook('example.xlsx') wb.get_sheet_names() excample.xlsx内のシート名を取得するプログラムを実行したのですが、 example.py:3: DeprecationWarning: Call to deprecated function get_sheet_names (Use wb.sheetnames). wb.get_sheet_names() 上記のエラー値が表示されました。 さらにくわしくエラーを調べていき import openpyxl wb=openpyxl.load_workbook('example.xlsx') wb.sheetnames のように修正したところ、エラーは消えたのですが、 結果が表示されるどころか何も表示されずプログラムが終了してしまうのですが、どういった原因が考えられますでしょうか?

  • ユーザ定義関数がうまく動きません。

    ユーザ定義関数がうまく動きません。 2月のA1セル値が1になっていたりします。 どこがおかしいのかわかりません。解決方法を教えていただけませんでしょうか。 よろしくお願いします。 【シートの設定】 シート名は1月・・・12月です。 各シートの A1セルは「=sheetname()」 B1セルは「月のチェックシート」 が入っています。 【VBAの設定】 Function SheetName() As String 'Application.Volatile If Len(ActiveSheet.Name) = 3 Then SheetName = Left(ActiveSheet.Name, 2) Else SheetName = Left(ActiveSheet.Name, 1) End If End Function

  • pythonでエクセルにコピペできない

    pythonでWebページにログインし、レポートを全選択して エクセルにペーストしたいのですが、エクセルにペーストできないです。 どのように修正したら良いのでしょうか? よろしくお願いします。 【確認したこと】 1.エクセルは更新履歴が変わっているので、開いて保存はしている。 2.プログラム終了後、手動でエクセルを開いてctrl+vするとコピーした値をペーストできる。(クリップボードにはコピーされている) 3.新規エクセルで試してもペーストできない。 import time import chromedriver_binary import pyautogui import openpyxl from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.chrome import service wb = openpyxl.load_workbook("./BOS_Data.xlsx") #WEBブラウザの起動 driver = webdriver.Chrome() #自動ログインしたいウェブサイトのURLをコピペ driver.get('https://xxx/Login/default.asp') USER = 'o2' PASS = 'M3' my_id = driver.find_element(By.NAME, 'sUserName') password = driver.find_element(By.NAME, 'sPassword') submit_btn = driver.find_element(By.NAME, 'submit') #自動入力したIDとパスワードを入力 my_id.send_keys(USER) password.send_keys(PASS) #ログインボタンを自動入力 submit_btn.click() #Reportをクリック driver.find_element(By.XPATH, '/xxxxxxxx).click() #全選択して、コピー pyautogui.hotkey('ctrl', 'a') pyautogui.hotkey('ctrl', 'c') #すでに存在するExcelワークブックを読み込み、ペーストして保存 wb = openpyxl.load_workbook("./BOS_Data.xlsx") ws = wb['Sheet1'] wc = ws['A1'] pyautogui.hotkey('ctrl', 'v') time.sleep(3) wb.save("./BOS_Data.xlsx")

  • プロシージャの呼び出しの分岐について

    Excel2000 Win2000でマクロ作成中の超初心者です。 請求書入力マクロですが、修正したいところがあります。 各シートのセルA10が、空欄のシートと、"個人"と記入してあるシートが混在しています。 これを、空欄の場合は Call 作成部品、 個人と記入してあるときは Call 作成部品2 と分岐して プロシージャを呼びだししたいのですが、コードをどう修正すればよろしいでしょうか。 修正前のコード Sub 請求書入力() Const EXCEPT_NAME = "表紙 印刷" Application.ScreenUpdating = False ChDrive ThisWorkbook.Path ChDir ThisWorkbook.Path Dim list, SheetName For Each SheetName In ActiveWorkbook.Worksheets If InStr(EXCEPT_NAME, SheetName.Name) = 0 Then Sheets(SheetName.Name).Activate Call 作成部品 End If 'ActiveSheet.Protect Next End Sub

  • 特定のシートだけ関数入力を除外したい

    windows7 Excel2007でマクロ作成中の初心者です。 30枚のシートがあるブックがあります。 以下のコードで処理を行っていました。 Sub 請求書入力() Const EXCEPT_NAME = "表紙 経理 一覧  部門" Application.ScreenUpdating = False ChDrive ThisWorkbook.Path ChDir ThisWorkbook.Path Dim list, SheetName For Each SheetName In ActiveWorkbook.Worksheets If InStr(EXCEPT_NAME, SheetName.Name) = 0 Then Sheets(SheetName.Name).Activate Call 各シートに同じ関数を入れる End If Next End Sub しかし、上のシートの前にある2枚のシートだけ関数を入れないようにしたいです。この2枚だけはシート名が可変のため除外シートに追加できません。 また、それより、前のシートはシート数が可変で15から20枚あります。 そのためには、どういうコードにしたらよろしいでしょうか。

  • 最終シートからその手前まで5シートの選択したい

    最終シート名が「基本」、その前が「種別」、さらにその前が「一覧」と言うシート名になっています。 またその「一覧」の前2ケは、シート名をindexで指定したいです。 以下のコードを実行してもうまく、シートを除外してくれません。どうしたらよろしいでしょうか。 Sub 各シートに関数を入力() Dim EXCEPT_NAME As String EXCEPT_NAME = " 一覧  種別  基本" & Worksheets(Sheets.Count - 4).name & Worksheets(Sheets.Count - 5).name Application.ScreenUpdating = False ChDrive ThisWorkbook.Path ChDir ThisWorkbook.Path Dim list, sheetName For Each sheetName In ActiveWorkbook.Worksheets If InStr(EXCEPT_NAME, sheetName.name) = 0 Then Sheets(sheetName.name).Activate ActiveSheet.Unprotect Call 関数貼付 End If Next End Sub

  • lunuxでコンパイル

    普段はリヌックスの環境を使っているのですが、ウィンドウズでしか動かないプログラムがあり、プログラムを実行するたびに、マシンを切り替えていて不便を感じています。 http://prefixspan-rel.sourceforge.jp/のC++のファイルをリヌックスでコンパイルしたいのですが、g++ prefixspan.cpp では In file included from /usr/include/c++/4.4/backward/strstream:47, from prefixspan.cpp:30: /usr/include/c++/4.4/backward/backward_warning.h:28:2: warning: #warning This file includes at least one deprecated or antiquated header which may be removed without further notice at a future date. Please use a non-deprecated interface with equivalent functionality instead. For a listing of replacement headers and interfaces, consult the file backward_warning.h. To disable this warning use -Wno-deprecated. prefixspan.cpp: In function ‘int main(int, char**)’: prefixspan.cpp:492: error: ‘atoi’ was not declared in this scope となります。C++に関しては詳しくないのですが、これは直せるものなのでしょうか?

  • フォートランの動作に関する質問

    以下のような短いフォートランプログラムがあります。OS:Windows10 module com integer,parameter ::nd=10 end module program main use com print *, nd call sub stop end subroutine sub use com print *, nd return end 内容はモジュールで宣言したパラメータを確認してみるということです。 このプログラムがgfortranで動作せず、intel fortranでは全く問題ありません。 gfortranの結果は以下のようです。 f951.exe: Fatal Error: Reading module 'com' at line 1 column 1: Unexpected EOF GNU Fortran (Rev1, Built by MSYS2 project) 9.3.0 Copyright (C) 2019 Free Software Foundation, Inc. gfortranのこのバージョンに何か問題があるのでしょうか。前からすこしおかしいことには気づいていたのですが。私のコードに問題があるでしょうか。 ※Cが一番近いと思いましてこちらに上げました。

  • C++でコンパイルするとwarningが出ます

    C++初心者です。 C++でコンパイルすると以下のようなwarningメッセージが出るのですが、どういう意味なんでしょうか?解決策があれば教えてください。 プログラム(sample.cpp) #include <iostream.h> main(){ cout << " sample \n"; } warningメッセージ In file included from /usr/include/c++/3.3.1/backward/iostream.h:31, from sample.cpp:1: /usr/include/c++/3.3.1/backward/backward_warning.h:32:2: warning: #warning This file includes at least one deprecated or antiquated header. Please consider usin g one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <s stream> instead of the deprecated header <strstream.h>. To disable this warning use -Wno-deprecated

  • Pythonでexport PYTHONSTARTTUPがエラーになる

    Pythonでexport PYTHONSTARTTUPがエラーになる OS:Windows7 Python2.6.6使用 http://d.hatena.ne.jp/kazu_pon/20100921/p1 ↑のサイトを参照してpythonのインタラクティブモードをカスタマイズしようとおもったのですが、 >>> export PYTHONSTARTUP = ~/.pythonstartup File "<stdin>", line 1 export PYTHONSTARTUP = ~/.pythonstartup ^ SyntaxError: invalid syntax というようにエラーが出てしまいます。 また、直接、環境変数PYTHONSTARTUPにC:\Users\name\.pythonstartup.py (nameにはちゃんと自分の名前が入ってます)といれても Traceback (most recent call last): File "C:\Users\teruo\.pythonstartup.py", line 12, in <module> histfile = os.path.join(os.environ['HOME'], '.pythonhistory') File "C:\Python26\lib\os.py", line 423, in __getitem__ return self.data[key.upper()] KeyError: 'HOME' というようなエラーが出てしまいます。どこがいけないのでしょうか?宜しければご教授ください。

専門家に質問してみよう