質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Outlook

Microsoft OutlookはMicrosoft Officeの一部として組み込まれている、のユーザー管理とメーラーの機能を持ち合わせたソフトウェアです。

解決済

outlook分類項目のインポートについて

keekers_ryo
keekers_ryo

総合スコア12

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Outlook

Microsoft OutlookはMicrosoft Officeの一部として組み込まれている、のユーザー管理とメーラーの機能を持ち合わせたソフトウェアです。

1回答

0評価

0クリップ

309閲覧

投稿2022/05/30 02:07

【環境】
Windows 10 Enterprise(20H2)
offiece365 ※最新バージョンと思われます。
ボールドテキスト
【質問】
手動で設定したoutlookの分類項目をエクスポートし、別環境にインポートしたいと思います。
別環境は移行元と同一環境です。

参考になるページがあったので、記載されたスクリプトを実行しました。

https://outlooklab.wordpress.com/2012/11/03/%E8%89%B2%E5%88%86%E9%A1%9E%E9%A0%85%E7%9B%AE%E3%81%AE%E3%83%9E%E3%82%B9%E3%82%BF%E3%83%BC%E3%82%92%E3%82%A8%E3%82%AF%E3%82%B9%E3%83%9D%E3%83%BC%E3%83%88%E3%82%A4%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%88/

インポートはうまく行ったので、エクスポートを試してみると、
以下箇所でエラーとなります。

olkApp.Session.Categories.Add arrField(2), arrField(0), arrField(1)

「プロシージャの呼び出し、または引数が不正です。」

引数は正しく値が入ってることは確認しているのですが、原因がわかりません。
エラー原因についてご教示頂けると幸いです。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

millefeuille

2022/06/01 07:13

エラーの処理はインポートで行われるものですが、現象はインポートの際に発生しているということでよいでしょうか? その場合、エクスポートしたファイルの内容はどうなっていますでしょうか? 分類項目に含まれる文字列に起因してエラーが発生している可能性があります。
keekers_ryo

2022/06/01 07:51

インポート時にエラーが発生します。 エクスポートしたファイルは 9;0;関西 みたいな形で;区切りで編集されています。
ken3memo

2022/06/02 05:25

参考になるページ のコードを見ると、 olkApp.Session.Categories.Add arrField(2), arrField(0), arrField(1) If Err.Number <> 0 Then ' エラーが発生した場合は既存のものがあるのでそれを上書き Set objCategory = olkApp.Session.Categories.Item(arrField(2)) objCategory.Color = arrField(0) objCategory.ShortcutKey = arrField(1) End If 単純に、Item(arrField(2)) 同じ名前のITEMを分類に登録しているだけとか?無いですよね。 参考ページではエラーのアト、上書き処理で対応しているみたいですが。 (※ご自身のコードをUPすると、On Error Resume Next が無いとか・・・) 1.On Error Resume Next 書いてますか? エラーのデータ 9;0;関西 大丈夫そうですね・・・、 2.標準の分類がエラーを起こしている? エクスポート、書き出しのコードを見ると、 For Each objCategory In olkApp.Session.Categories stmFile.WriteLine objCategory.Color & ";" & objCategory.ShortcutKey & ";" & objCategory.Name Next でファイルに吐き出しているときに、 オリジナルで追加した分類 9;0;関西 と 元々入っていた、分類 赤、分類 青、などのデータもエクスポートするので、 それをインポートするときに重複エラー?なのでは? なんて、想像・妄想してみました。 現在のコードを追記されると、適切なアドバイスがもらえると思ったり (↑でないと、想像で私みたいに的外れなコメントを書いてしまったり。)
keekers_ryo

2022/06/02 07:39

ken3memo 様 ご回答ありがとうございます。 ご指摘どおり、単純なミスに気が付きました。 On Error Resume Nextの記載をコピペできていませんでした。 こちらを追加すると、無事に動作しました。ありがとうございます。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Outlook

Microsoft OutlookはMicrosoft Officeの一部として組み込まれている、のユーザー管理とメーラーの機能を持ち合わせたソフトウェアです。